У меня есть сервер MySQL в Северной Америке (с помощью Amazon RDS) и реплика чтения. У меня также есть копия чтения для нового региона - Австралии.
Австралийский сервер работает крайне медленно из-за динамического характера чтения Joomla с основного сервера БД в Северной Америке. Я попытался использовать прокси MySQL для этого, чтобы разделить чтение / запись, но это не является долгосрочным решением. Mysql прокси выглядит эффективно мертвым.
Какие еще варианты у меня есть?
Если вы используете относительно свежую версию PHP, то вы, вероятно, используете драйвер php mysqlnd. http://us3.php.net/manual/en/book.mysqlnd.php
Mysqlnd имеет пользовательский API-интерфейс плагина и может функционировать таким же образом, как и MySQL-прокси - например, http://pecl.php.net/package/mysqlnd_ms - это плагин, который разделяет операции чтения и записи и имеет недавний официальный выпуск 9/2013.
Также имейте в виду, что Joomla всегда пишет в таблицу сеансов. Использование memcache или apc просто сохраняет данные сеанса в кэше, а не метаданные сеанса.
Вы можете получить тот же прирост производительности, опустив таблицу #_sessions и воссоздав ее, используя механизм данных памяти вместо innodb или myisam.
источник
Каждую страницу, созданную Joomla, нужно будет записать в таблицу сеансов.
Поэтому я бы предложил использовать memcache или apc для управления сессиями. Это должно помочь вам достичь нулевой записи в базу данных, поэтому чтение-реплика будет достаточным для большинства страниц.
источник
Другой вариант улучшения скорости - это поставить Nginx перед ним в качестве обратного прокси. Это уменьшит доступ к базе данных, так как общие страницы никогда не перейдут на joomla, и MySQL не сможет найти конфигурацию прокси, но это базовая настройка
источник