Tengo un servidor mysql en América del Norte (usando Amazon RDS) y una réplica de lectura. También tengo una réplica de lectura para una nueva región: Australia.
El servidor australiano es brutalmente lento debido a la naturaleza dinámica de Joomla que lee el servidor DB principal en América del Norte. Intenté usar el proxy mysql para esto para dividir la lectura / escritura, pero esa no es una solución a largo plazo. El proxy Mysql parece estar efectivamente muerto.
¿Qué otras opciones tengo?
Si está utilizando una versión decentemente reciente de PHP, entonces probablemente esté utilizando el controlador php mysqlnd. http://us3.php.net/manual/en/book.mysqlnd.php
Mysqlnd tiene un complemento API personalizado y puede funcionar de la misma manera que el proxy mysql; por ejemplo, http://pecl.php.net/package/mysqlnd_ms es un complemento que divide lecturas y escrituras y tuvo un lanzamiento oficial reciente 9/2013
También tenga en cuenta que Joomla siempre escribe en la tabla de la sesión. Usar memcache o apc solo almacena los datos de la sesión en la memoria caché, no los metadatos de la sesión.
Puede obtener el mismo aumento de rendimiento soltando su tabla #_sessions y recreándola usando el motor de datos de memoria en lugar de innodb o myisam.
fuente
Cada página generada por Joomla deberá escribir en la tabla de sesión.
Por lo tanto, sugeriría usar memcache o apc para la administración de la sesión. Eso debería ayudarlo a lograr una escritura cero en la base de datos, por lo tanto, la réplica de lectura será suficiente para la mayoría de las páginas.
fuente
Otra opción de mejora de la velocidad sería poner a Nginx frente a él como un proxy inverso. Esto reduciría mucho el acceso a la base de datos ya que las páginas comunes nunca irían a joomla y mysql no puede encontrar la configuración del proxy, pero esta es la configuración base
fuente