Я просматривал документацию по параметру sync_binlog и обнаружил несоответствие в документации по параметру sync_binlog.
Документация здесь http://dev.mysql.com/doc/refman/5.6/en/replication-options-binary-log.html#sysvar_sync_binlog говорит:
Наиболее безопасным выбором является значение 1, поскольку в случае сбоя вы потеряете не более одной группы фиксации из двоичного журнала.
По сути, это означает, что данные будут обновляться, но могут отсутствовать в бинарных журналах.
Однако в документации по двоичному журналу здесь http://dev.mysql.com/doc/refman/5.6/en/binary-log.html говорит:
Например, если вы используете таблицы InnoDB и сервер MySQL обрабатывает оператор COMMIT
, он последовательно записывает множество подготовленных транзакций в двоичный журнал, синхронизирует двоичный журнал, а затем фиксирует эту транзакцию в InnoDB. Если сервер выходит из строя между этими двумя операциями, транзакция откатывается InnoDB при перезапуске, но все еще существует в двоичном журнале.
По сути, это означает, что транзакция сначала записывается в бинлог, а затем фиксируется в InnoDB, поэтому есть вероятность, что в случае сбоя строка будет в бинлоге, но не существует в базе данных.
Я задал этот вопрос на форуме MySQL и жду ответа, но был бы очень признателен, если бы кто-то, кто использовал этот параметр, мог предоставить подробную информацию о том, какое из следующих двух действий является правильным?