Ho fatto alcune ricerche sulle possibilità di migrare WordPress su MongoDB o altri database NoSQL per renderlo davvero scalabile. Cuciture c'è un modo abbastanza buono (purtroppo non breve) per raggiungere questo obiettivo.
Per cominciare, ho realizzato un piccolo script in PHP che sta migrando le tabelle MySQL nelle raccolte Mongo facendo alcune aggregazioni preservando le dipendenze relazionali originali:
https://github.com/virtimus/mysql2mongo
Il prossimo passo su cui sto lavorando ora è far capire a MongoDB qualcosa che sarebbe "vicino" a SQL - l'ho chiamato "nSQL" - è il dialetto json basato su SQL che opera su raccolte gerarchiche
https://github.com/virtimus/nsqlserver
È un work in progress - nulla ancora impegnato - tuttavia ho già offline w protype versione che elabora semplici query nSQL del modulo:
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
})
Può funzionare sia su MySQL, MongoDB o quasi su qualsiasi altro backend relazionale / non relazionale. È una raccolta di due progetti: - un fork MongoDB (versione MongoDB leggermente estesa con alcuni comandi "nSQL") - un fork del progetto SQLRelay (gestione proxy DB relazionale molti backend SQL)
OK, quindi il componente sopra sarebbe la parte principale del lavoro. C'è molto sviluppo per renderlo completamente funzionale (gestione di aggregazioni, ordinamento, filtri di documenti secondari, inserimenti / aggiornamenti / eliminazioni, forse anche join, ecc.) L'effetto finale sembra essere molto promettente in generale - non solo per WP. Immagina, ad esempio, la migrazione da SQL a NoSQL utilizzando diversi semplici comandi "INSERT FROM INTO" ...
Il resto del lavoro sarebbe collegarlo con WordPress - attraverso una sorta di traduttore SQL2NSQL (cioè questo plugin PDO sopra)
C'è qualcuno interessato? Aiuto nell'analisi / sviluppo? Investimenti finanziari?