Как очистить двоичные журналы - PullRequest
1 голос
/ 03 октября 2010

Я прочитал комментарий к другому сообщению, что InnoDB можно оптимизировать по скорости, не сбрасывая двоичные журналы при каждом коммите.

Впервые слышу об этом, так что это за двоичные журналы и что это за сброс?Почему я должен это делать (а когда нет) и как?

Ответы [ 3 ]

2 голосов
/ 03 октября 2010

Двоичные журналы используются для восстановления после сбоя и репликации.Предполагая, что они включены, две основные применимые настройки, касающиеся очистки:

  • innodb_flush_log_at_trx_commit = 2
  • sync_binlog = 0

Эти настройки предпочтительнее, если скорость больше "гарантированная «надежность», потому что они позволяют ОС задерживать сброс буферов на диск.

Если вы работаете на дешевом контроллере диска (большинство людей так и делают), очистка журналов при каждом коммите очень медленно.На сайте, который делает много записей, я видел падение времени выполнения страницы в 10-100 раз!Вы можете легко запустить свои собственные тесты и посмотреть, как это повлияет на вас.

Чтобы было очень ясно, если вы хотите получить максимальные выгоды от восстановления, вы должны установить оба этих значения равными 1. Как указано выше, вы можете потерятьнесколько секунд данных в случае сбоя системы.Для некоторых сайтов это неприемлемо.Для блогов и форумов это, вероятно, выгодный компромисс.

Подробнее о настройках вы можете прочитать здесь:

http://dev.mysql.com/doc/refman/5.0/en/innodb-parameters.html

Существует множество параметров, связанных с памятью.например, 'innodb_buffer_pool_size' для настройки.Поиск по настройке MySQL InnoDB должен помочь.

2 голосов
/ 03 октября 2010

Бинарный журнал MySQL действует как база данных, эквивалентная журналу в файловой системе журналирования.Каждый запрос регистрируется в нем, так что если в какой-то момент происходит сбой БД, вы можете «воспроизвести» двоичный журнал и перестроить БД с минимальными трудностями.Он также используется в репликации.

Подробнее здесь: http://dev.mysql.com/doc/refman/5.1/en/binary-log.html

1 голос
/ 03 октября 2010

InnoDB восстанавливается после сбоев путем воспроизведения журналов.И он также используется для репликации главного сервера на подчиненные.

...