Ich habe einen MySQL-Server in Nordamerika (mit Amazon RDS) und eine Lesereplik. Ich habe auch eine Lesereplik für eine neue Region - Australien.
Der australische Server ist aufgrund der Dynamik von Joomla, die den Haupt-DB-Server in Nordamerika abliest, brutal langsam. Ich habe versucht, einen MySQL-Proxy zu verwenden, um das Lesen / Schreiben aufzuteilen, aber das ist keine langfristige Lösung. MySQL-Proxy scheint praktisch tot zu sein.
Welche anderen Optionen habe ich?
Wenn Sie eine anständige aktuelle Version von PHP verwenden, verwenden Sie wahrscheinlich den PHP-MySQL-Treiber. http://us3.php.net/manual/en/book.mysqlnd.php
Mysqlnd verfügt über eine benutzerdefinierte Plugin-API und kann auf die gleiche Weise wie der MySQL-Proxy funktionieren. Beispielsweise ist http://pecl.php.net/package/mysqlnd_ms ein Plugin, das Lese- und Schreibvorgänge aufteilt und eine aktuelle offizielle Version 9/2013 hatte
Denken Sie auch daran, dass Joomla immer in die Sitzungstabelle schreibt. Bei Verwendung von memcache oder apc werden nur die Sitzungsdaten im Cache gespeichert - nicht die Sitzungsmetadaten.
Sie können den gleichen Leistungsschub erzielen, indem Sie Ihre Tabelle #_sessions löschen und sie mithilfe der Speicherdaten-Engine anstelle von innodb oder myisam neu erstellen.
quelle
Jede von Joomla generierte Seite muss in die Sitzungstabelle geschrieben werden.
Daher würde ich vorschlagen, memcache oder apc für die Sitzungsverwaltung zu verwenden. Dies sollte Ihnen dabei helfen, keine Daten in die Datenbank zu schreiben. Daher ist eine Lesereplik für die meisten Seiten ausreichend.
quelle
Eine weitere Option zur Geschwindigkeitsverbesserung wäre, Nginx als Reverse-Proxy davor zu stellen. Dies würde viel Datenbankzugriff reduzieren, da die allgemeinen Seiten niemals an joomla und mysql gehen würden. Die Proxy-Konfiguration kann nicht gefunden werden, aber dies sind die Basis-Setups
quelle