вторник, 10 мая 2011 г.

MySQL отличия Row-based и Statement-based репликации

Начиная с mysql 5.1 поддерживаются два вида репликации: Row-based и Statement-based, каждый имеет как достоинства, так и недостатки.

Statement-based
Этот вид репликации является необычным для СУБД и заключается в передаче запроса "как есть" с мастера на слейв, таким образом слейв выполняет в точности тот же самый запрос что и мастер. Помимо простоты реализации данный механизм как правило дает двоичный лог меньшего размера, нежели при использовании Row-based репликации и в конечном итоге уменьшается трафик репликации.
Из недостатков можно отметить зависимость изменений от многих факторов, помимо текста запроса, поэтому не все запросы могут быть реплицированы корректно. А также работа с хранимыми процедурами и триггерами нетривиальна в случае с Statement-based репликацией.
Row-based
Этот тип репликации впервые появился в версии 5.1, его главным преемуществом является способность корректо реплицировать любой запрос. Однако репликация запроса, изменяюшего миллион записей в базе будет выполняется намного дольше, поскольку каждая изменяемая строка будет передаваться с мастера на слейв.

Таким образом ни один из форматов репликации не является идеальным, поэтому по умолчанию используется смешанный формат, который позволяет серверу переключаться между режимами по мере необходимости.

1 комментарий:

  1. Здравствуйте!

    Скажите пожалуйста как мне лучше сделать эмулятор лотерей по типу Мега Миллион Результаты http://localotto.com/ru/megamillions ? Может быть Вы уже сталкивались с этим и можете мне помочь?

    ОтветитьУдалить