2010-03-08 124 views
2

根據下面給出的文檔鏈接:innodb鎖定等待超時

當發生鎖定等待超時時,不會執行當前語句。當前事務不會回滾。 (直到MySQL的InnoDB的5.0.13回滾如果鎖等待超時發生的整個事務。您可以通過啓動與--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」是5.0.13的默認行爲,我想這是處理這種情況的正確方法。這應該是默認行爲,並且不應該要求用戶爲功能添加參數,這被認爲是理所當然的?

回答

2

它不會影響參照完整性 - 它只是讓您有機會重試,或者執行其他任務,如迄今完成的提交工作或回滾。

對於小型交易,爲簡單起見,您還可以打開超時回滾選項。但是,如果您在幾個小時內運行交易,您可能會對超時作出反應的機會感到高興。