Ваше ведущее устройство выполняется параллельно, и Ваше ведомое устройство выполняется в сериале. Если Ваше ведущее устройство может обработать 1,5 часа, вставляет/обновляет/выполняет за 1 реальный час, Ваше ведомое устройство отстанет.
Если Вы не можете найти способы улучшить производительность записи относительно своего ведомого устройства (больше памяти, более быстрых дисков, удалите ненужные индексы), Вы поразили ограничение в своей архитектуре приложений. В конечном счете Вы поразите точку, что Вы не можете выполнить изменения в режиме реального времени с такой скоростью, как Ваше ведущее устройство может выполнить их параллельно.
Много большого черепка сайтов их базы данных: рассмотрите разделение Вашего master+slave в несколько master+slave кластеров. Затем разделите свою клиентскую базу через эти кластеры. Когда ведомое устройство начинает отставать, пора добавить другой кластер.
Это не дешево, но если Вы не сможете найти способ заставить репликацию бинарного журнала выполнить операторы параллельно, Вы, вероятно, не найдете лучший способ сделать его.
Обновление (2017): MySQL теперь поддерживает параллельные потоки раба. Существует все еще много переменных, которые заставят ведомое устройство отставать, но ведомые устройства больше не должны писать в последовательном порядке. Желание сохранить порядок фиксации параллельных ведомых потоков является важной опцией посмотреть на то, если точное состояние ведомого устройства в каком-либо моменте времени очень важно.
Добавление памяти на ведомое устройство, вероятно, поможет. Мы перешли с 32 на 128 мегов, и отставание более или менее исчезло. Но это не дешево и не будет достаточно во всех ситуациях.
Покупка третьего сервера, вероятно, не сильно поможет, скорее всего, вы просто получите еще одного отстающего ведомого.
Пробовали ли вы : 1) SET innodb_flush_log_at_trx_commit=0 2) SET sync_binlog=0
Оба помогут ускорить ваш Slave с небольшим уровнем дополнительного риска, если у вас произойдет сбой сервера.