Eu tenho um servidor mysql na América do Norte (usando o Amazon RDS) e uma réplica de leitura. Eu também tenho uma réplica de leitura para uma nova região - a Austrália.
O servidor australiano é brutalmente lento devido à natureza dinâmica do Joomla, lendo o servidor de banco de dados principal na América do Norte. Eu tentei usar o proxy mysql para dividir a leitura / gravação, mas essa não é uma solução a longo prazo. O proxy Mysql parece estar efetivamente morto.
Que outras opções eu tenho?
Se você está usando uma versão decentemente recente do PHP, provavelmente está usando o driver php mysqlnd. http://us3.php.net/manual/en/book.mysqlnd.php
O Mysqlnd possui uma API de plug-in personalizado e pode funcionar da mesma maneira que o proxy mysql - por exemplo, http://pecl.php.net/package/mysqlnd_ms é um plug-in que divide leituras e gravações e teve um release oficial recente 9/2013
Lembre-se também, o Joomla sempre grava na tabela de sessões. Usar memcache ou apc apenas armazena os dados da sessão no cache - não os metadados da sessão.
Você pode obter o mesmo aumento de desempenho descartando sua tabela #_sessions e recriá-la usando o mecanismo de dados de memória em vez de innodb ou myisam.
fonte
Toda página gerada pelo Joomla precisará gravar na tabela de sessões.
Então, sugiro usar o memcache ou o apc para gerenciamento de sessões. Isso deve ajudá-lo a obter gravação zero no banco de dados; portanto, a réplica de leitura será suficiente para a maioria das páginas.
fonte
Outra opção de melhoria de velocidade seria colocar o Nginx na frente dele como um proxy reverso. Isso reduziria muito o acesso ao banco de dados, pois as páginas comuns nunca iriam ao joomla e o mysql não consegue encontrar a configuração do proxy, mas essa é a configuração básica
fonte