2010-03-08 3 views
2

В соответствии с приведенной ниже ссылкой на документацию:время ожидания ожидания блокировки индосса

Когда происходит тайм-аут ожидания блокировки, текущий оператор не выполняется. Текущая транзакция не откат. (До MySQL 5.0.13 InnoDB не откат всей транзакции, если тайм-аут ожидания блокировки произошло. Вы можете восстановить, запуская сервер с --innodb_rollback_on_timeout опции доступны как в MySQL 5.0.32.

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

Означает ли это, что, когда происходит тайм-аут ожидания блокировки, это ставит под угрозу целостность транзакции? «roollback on timeout» по умолчанию был до версии 5.0.13, и я думаю, что это был правильный способ справиться с такими ситуациями. это должно быть поведение по умолчанию, и пользователю не следует предлагать добавить параметр для функции, которая считается само собой разумеющейся?

ответ

2

Это не ставит под угрозу ссылочную целостность - это просто дает вам возможность либо повторить попытку, либо сделать что-то еще, как завершение работы, выполненную до сих пор, или откат.

Для небольших транзакций и для простоты вы также можете включить опцию rollback-on-timeout. Однако, если вы используете транзакции в течение многих часов, вы можете оценить возможность реагирования на таймаут.

Смежные вопросы