WordPress sharding: care este cel mai bun plugin pentru baze de date multiple?
Am o instalație WordPress multisite care găzduiește suficiente bloguri încât am nevoie să împart baza de date (sharding). Văd că există trei plugin-uri disponibile pentru a distribui WordPress pe mai multe baze de date:
- http://wordpress.org/extend/plugins/hyperdb/
- http://premium.wpmudev.org/project/multi-db
- http://wordpress.org/extend/plugins/shardb/
Încerc să decid pe care să îl folosesc, dar nu am găsit prea multe informații care să le compare.
Are cineva experiență în implementarea vreunuia dintre aceste trei instrumente? Sau, mai bine, experiență cu mai multe dintre ele și o prezentare a motivelor pentru care ați trecut de la unul la altul?
Mulțumesc, Bethany

Personal, eu nu folosesc niciunul dintre ele. În schimb, folosesc un cluster NDB. NDB este motorul de replicare master-master integrat în MySQL.
Singura limitare practică a NDB este lipsa indexului full text. Dar poți folosi mereu API-ul de la Yahoo sau Google pentru căutări în cadrul site-ului tău. Am considerat că merită redundanța suplimentară, mai ales când iei în considerare faptul că niciun server nu devine un punct de blocare pentru scrierea în baza de date.
Dacă ai nevoie de replicare master-slave cu un punct de blocare pentru scriere, hyperdb este dezvoltat de Automattic, așa că este alegerea mai sigură dintre plugin-urile menționate. Totuși, reține că o parte din codul hyperdb a fost integrat în WordPress începând cu versiunea 3.0 și unificarea cu WPMU. (Vezi fișierul wp-db.php din directorul wp-includes, vei observa că o mare parte din el poate gestiona mai multe servere de baze de date din start.)

Pentru a completa această abordare (pentru a rezolva problema la nivelul bazei de date): Puteți folosi și servere proxy MySQL. Și există și alte beneficii în a înlocui clasa WPDB cu una care utilizează mysqli sau chiar mysqlnd pentru o performanță mai bună pe partea de PHP.

Aș opta pentru HyperDB.
Este dezvoltat de programatorii de bază ai WordPress și se bazează pe codul folosit pe Wordpress.com.
http://wordpress.org/support/topic/shardb-or-hyperdb
SharDB ar putea fi un pic mai ușor de configurat, dar probabil are mai puține funcționalități decât HyperDB. Aș zice să arunci o privire la ambele și să alegi care se potrivește cel mai bine nevoilor tale.

Matt a vorbit la compania noastră acum câteva luni. El a recomandat o configurație de baze de date master-slave cu mulți sclavi doar pentru citire (R/O). Motivul său a fost că operațiile de scriere sunt costisitoare, iar cele de citire—mult mai numeroase!—nu sunt, așa că era mai bine să ai mai multă capacitate pentru citire. La fel și pentru serverele de aplicații: folosește hardware ieftin pentru a rezolva problema și uită de supercache.

Aceasta sună ca o opțiune excelentă, dar poți explica puțin mai multe despre cum ai proceda pentru a realiza acest lucru? (adică Cum să configurezi WP astfel încât scrierile să meargă către master și citirile să meargă către unul dintre slave) Există vreun plugin care poate ajuta cu asta? Sau este o configurare la nivel de baza de date/altă unealtă?

Poate acest lucru? "HyperDB vă permite să separați scrierile și citirile din baza de date și să le atribuiți fiecăreia unui set de servere."(https://codex.wordpress.org/HyperDB#Replication)
