Ich habe nach Möglichkeiten gesucht, WordPress auf MongoDB oder eine andere NoSQL-Datenbank zu migrieren, um es wirklich skalierbar zu machen. Nähte gibt es ziemlich gute Möglichkeit (leider keine kurze), um dies zu erreichen.
Zunächst habe ich in PHP ein kleines Skript erstellt, das MySQL-Tabellen in Mongo-Sammlungen migriert und dabei einige Aggregationen unter Beibehaltung der ursprünglichen relationalen Abhängigkeiten vornimmt:
https://github.com/virtimus/mysql2mongo
Der nächste Schritt, an dem ich gerade arbeite, besteht darin, MongoDB etwas verständlich zu machen, das SQL "nahe" kommt - ich habe es "nSQL" genannt - es ist ein json-basierter SQL-Dialekt, der mit hierachischen Sammlungen arbeitet
https://github.com/virtimus/nsqlserver
Es ist eine laufende Arbeit - noch nichts festgeschrieben - aber ich habe bereits eine Offline-Prototyp-Version, die einfache nSQL-Abfragen des Formulars verarbeitet:
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
})
Es kann sowohl mit MySQL, MongoDB als auch mit fast jedem anderen relationalen / nicht relationalen Backend funktionieren. Es besteht aus zwei Projekten: - einer MongoDB-Gabel (leicht erweiterte MongoDB-Version um einige "nSQL" -Befehle) - einer Gabel des SQLRelay-Projekts (relationale DB-Proxy-Behandlung) viele SQL-Backends)
OK - also wäre die obige Komponente der Hauptteil der Arbeit. Es gibt eine Menge Entwicklung, um es voll funktionsfähig zu machen (Handhabung von Aggregationen, Sortierung, Filter für Unterdokumente, Einfügungen / Aktualisierungen / Löschungen, möglicherweise auch Verknüpfungen usw.). Der Endeffekt scheint im Allgemeinen sehr vielversprechend zu sein - nicht nur für WP. Stellen Sie sich zum Beispiel die Migration von SQL zu NoSQL mit mehreren einfachen "INSERT FROM INTO" -Befehlen vor ...
Der Rest der Arbeit wäre, es mit WordPress zu verbinden - über eine Art SQL2NSQL-Übersetzer (dh dieses PDO-Plugin oben)
Ist da jemand interessiert? Hilfe bei Analyse / Entwicklung? Finanzinvestitionen?