Eu fiz algumas pesquisas sobre as possibilidades de migrar o WordPress para o MongoDB ou outro banco de dados NoSQL para torná-lo realmente escalável. Costuras, há uma maneira bastante boa (infelizmente não é curta) de conseguir isso.
Para começar, eu fiz pouco script em PHP, que está migrando tabelas MySQL para coleções Mongo, fazendo algumas agregações, preservando as dependências relacionais originais:
https://github.com/virtimus/mysql2mongo
O próximo passo no qual estou trabalhando agora é fazer o MongoDB entender algo que seria "próximo" ao SQL - chamei de "nSQL" - é o dialeto baseado em json do SQL operando em coleções hierárquicas
https://github.com/virtimus/nsqlserver
É um trabalho em andamento - ainda não foi confirmado - no entanto, eu já tenho a versão offline do protype que processa consultas nSQL simples do formulário:
db.runCommand(
{nsQL:
{
sel:['id','emailUse','emailType','emailSubject'], // properties/colums to return
flt:{emailUse:0,emailType:'test'}, // filter (where phrase equivalent)
ctb:'wp_eshop_emails' // table equivalent (can be agregated in collection as path)
},
cid:ci, //connection id
sid:si //session id
})
Ele pode funcionar no MySQL, MongoDB ou quase qualquer outro back-end relacional / não relacional. É compilação de dois projetos: - um fork do MongoDB (versão MongoDB levemente estendida por alguns comandos "nSQL") - um fork do projeto SQLRelay (manipulação de proxy do banco de dados relacional backends SQL)
OK - então o componente acima seria a parte principal do trabalho. Há muito desenvolvimento para torná-lo totalmente funcional (manipulação de agregações, classificação, filtros de subdocumentos, inserções / atualizações / exclusões, talvez também junções etc.) O efeito final parece ser muito promissor em geral - não apenas para o WP. Imagine, por exemplo, migração de SQL para NoSQL usando vários comandos "INSERT FROM INTO" simples ...
O resto do trabalho seria conectá-lo ao WordPress - através de algum tipo de tradutor SQL2NSQL (ou seja, este plugin DOP acima)
Existe alguém interessado? Ajuda na análise / desenvolvimento? Investimento financeiro?