Fragmentación en WordPress: ¿qué plugin multi-DB utilizar?
Tengo una instalación WordPress Multisite que aloja tantos blogs que necesito fragmentar (shard) la base de datos. Veo que hay tres plugins disponibles para distribuir WordPress en múltiples bases de datos:
- http://wordpress.org/extend/plugins/hyperdb/
- http://premium.wpmudev.org/project/multi-db
- http://wordpress.org/extend/plugins/shardb/
Estoy tratando de decidir cuál usar, pero no he encontrado mucha información que los compare.
¿Alguien tiene experiencia implementando alguna de estas tres herramientas? O mejor aún, ¿experiencia con más de una y un resumen de por qué cambiaron?
Gracias, Bethany

Personalmente, no uso ninguno de ellos. En su lugar, utilizo un clúster NDB. NDB es el motor de replicación maestro-maestro integrado en MySQL.
La única limitación práctica de NDB es la falta de índices de texto completo. Pero siempre puedes usar la API de Yahoo o Google para búsquedas dentro de tu sitio. Considero que vale la pena por la redundancia adicional, especialmente cuando se tiene en cuenta que ningún servidor termina siendo un cuello de botella para escrituras en la base de datos.
Si lo que necesitas es replicación maestro-esclavo con un cuello de botella para escrituras, HyperDB es desarrollado por Automattic, por lo que es la opción más segura entre los plugins que mencionaste. Dicho esto, ten en cuenta que parte del código de HyperDB en realidad se ha incorporado a WordPress desde la versión 3.0 y la fusión con WPMU. (Revisa el archivo wp-db.php en wp-includes, notarás que gran parte puede manejar múltiples servidores de base de datos de forma nativa).

Para agregar a este enfoque (para resolver el problema en la capa de la base de datos): También puedes hacer proxy de servidores MySQL. Y hay más beneficios al reemplazar la clase WPDB con una que haga uso de mysqli o incluso mysqlnd para obtener más rendimiento en el lado de PHP.

Yo optaría por HyperDB.
Está desarrollado por los desarrolladores principales de WordPress y está basado en el código utilizado en Wordpress.com.
http://wordpress.org/support/topic/shardb-or-hyperdb
SharDB podría ser un poco más fácil de configurar pero probablemente tenga menos características que HyperDB. Diría que eches un vistazo a ambos y determines cuál se ajusta mejor a tus necesidades.

Matt habló en nuestra empresa hace unos meses. Recomendó una configuración de base de datos maestro-esclavo con muchos esclavos de solo lectura. Su razonamiento fue que las escrituras eran costosas y las lecturas—mucho más numerosas—no lo eran, por lo que era mejor tener más capacidad de lectura. Lo mismo para los servidores de aplicaciones: usar hardware económico para resolver el problema y olvidarse de supercache.

Esta parece una gran opción, pero ¿puedes explicar un poco más sobre cómo podrías lograrlo? (es decir, cómo configurar WP para que las escrituras vayan al servidor maestro y las lecturas a uno de los esclavos) ¿Hay algún plugin que pueda ayudar con esto? ¿O es una configuración a nivel de base de datos/alguna otra herramienta?

¿Quizás esto? "HyperDB te permite dividir las escrituras y lecturas de la base de datos y asignar cada una a un array de servidores."(https://codex.wordpress.org/HyperDB#Replication)
