WordPress-Sharding: Welches Multi-DB-Plugin soll verwendet werden?

7

Ich habe eine WordPress-Multisite-Installation, die genügend Blogs hostet, die ich zum Sharding der Datenbank benötige. Ich sehe, dass drei Plugins verfügbar sind, um WordPress auf mehrere Datenbanken zu verteilen:

Ich versuche zu entscheiden, welches ich verwenden soll, aber ich habe nicht wirklich viele Informationen gefunden, die sie vergleichen .

Hat jemand Erfahrung mit der Bereitstellung eines dieser drei Tools? Oder noch besser, Erfahrung mit mehr als einem von ihnen und eine Übersicht darüber, warum Sie gewechselt haben?

Danke, Bethany

Biene
quelle
Da ich neu in dieser "Datenbank" -Konfiguration bin, muss ich wohl zuerst die einfachste ausprobieren, da ich die einzige bin, die an allen 24 Standorten arbeitet und die Geschwindigkeit ein Problem darstellt. Ich danke Ihnen allen vielmals! Ich hätte wirklich nicht gedacht, dass ich irgendwelche Antworten bekommen würde, geschweige denn so schnell. Danke. Ich hoffe, diese Arbeiten wünschen mir viel Glück :) Faith
@Faith: Bist du die gleiche Person wie "Bee", die die Frage gestellt hat? Gibt es einen Grund, warum Sie dieses Login nicht mehr verwenden können? Dies ist nicht das gleiche System wie ein Forum, daher sollten Sie in einer Antwort keinen Dankesbrief schreiben, sondern das Abstimmungssystem verwenden (sobald Sie genug "Ruf" haben, um dies zu tun).
Jan Fabry
Biene, bitte wählen Sie eine Antwort als "die Antwort" :)
hakre

Antworten:

4

Persönlich benutze ich keinen von ihnen. Und stattdessen ein NDB-Cluster. NDB ist die in MySQL integrierte Master-Master-Replikations-Engine.

Die einzige Einschränkung von NDB in der Praxis ist das Fehlen eines Volltextindex. Sie können jedoch jederzeit die Yahoo- oder Google-API für Suchvorgänge auf Ihrer Website verwenden. Ich fand es die zusätzliche Redundanz wert, besonders wenn man bedenkt, dass kein Server ein DB-Write-Flaschenhals ist.

Wenn Sie eine Master-Slave-Replikation mit einem Schreibflaschenhals benötigen, wird hyperdb von automattic entwickelt. Dies ist die sicherere Wahl unter den von Ihnen hervorgehobenen Plugins. Beachten Sie jedoch, dass ein Teil des Hyperdb-Codes seit 3.0 und dem Zusammenführen von wpmu tatsächlich wieder in wp portiert wurde. (Siehe die Datei wp-db.php in wp-includes. Sie werden feststellen, dass viele davon sofort mehrere DB-Server verarbeiten können.)

Denis de Bernardy
quelle
So ergänzen Sie diesen Ansatz (um das Problem auf der Datenbankebene zu lösen): Sie können auch MySQL-Server als Proxy verwenden. Und es ist noch vorteilhafter, die WPDB-Klasse durch eine zu ersetzen, die mysqli oder sogar mysqlnd verwendet, um mehr Leistung auf der PHP-Seite zu erzielen.
hakre
2

Ich würde mit HyperDB gehen.

Es wurde von den wichtigsten WP-Entwicklern entwickelt und basiert auf Code, der bei Wordpress.com verwendet wird.

http://wordpress.org/support/topic/shardb-or-hyperdb

SharDB ist möglicherweise etwas einfacher einzurichten, verfügt jedoch wahrscheinlich über weniger Funktionen als HyperDB. Ich würde sagen, schauen Sie sich diese beiden an und finden Sie heraus, welches Ihren Anforderungen am besten entspricht.

Bobdiaes
quelle
Hey, vielen Dank für die Eingabe! HyperDB ist sicherlich flexibel und mit allen Funktionen ausgestattet. Möglicherweise mehr als ich brauche.
Bee
1

Matt hat vor einigen Monaten in unserer Firma gesprochen. Er empfahl ein Master-Slave-DB-Setup mit vielen R / O-Slaves. Sein Grundgedanke war, dass Schreibvorgänge teuer waren und Lesevorgänge - viel umfangreicher! - nicht, daher war es besser, mehr Lesekapazität zu haben. Das Gleiche gilt für App-Server: Werfen Sie billige Hardware auf das Problem und vergessen Sie den Supercache.

BryanH
quelle
Das klingt nach einer großartigen Option, aber können Sie etwas näher erläutern, wie Sie dies erreichen würden? (dh wie man WP so konfiguriert, dass Schreibvorgänge an den Master und Lesevorgänge an einen der Slaves gehen) Gibt es ein Plugin, das dies unterstützen kann? Oder ist es eine Konfiguration auf DB-Ebene / ein anderes Tool?
Rinogo
1
Vielleicht das? "Mit HyperDB können Sie Datenbank-Schreib- und Lesevorgänge aufteilen und jeweils einem Array von Servern zuweisen." ( Codex.wordpress.org/HyperDB#Replication )
rinogo