2017-09-15 36 views
2

在MySQL文档:” https://dev.mysql.com/doc/refman/5.7/en/innodb-deadlocks-handling.html为什么我不应该使用“可重复读”与锁定读数(select..for更新)“

它提到:” 如果使用锁定读取(SELECT。 ..更新或选择...锁定在共享模式),尝试使用较低的隔离级别,如READ COMMITTED。

有人能告诉我为什么我不能用‘可重复读’?实例将是不错的。

干杯

+0

不,这是不一样的,我想知道为什么我不能使用“可重复读取”和“选择....以进行更新”。 –

+0

请编辑你的问题,欢呼 – Prisoner

回答

3

InnoDB中避免使用某些类型的锁,如果你使用读提交的。这可以帮助您避免死锁

我设计这个整体呈现:。InnoDB Locking Explained with Stick Figures

但你几乎永远无法避免死锁的100%的情况下,他们是不是一个错误,你是并发系统的一部分。你可以减少发生死锁的频率,但你也可以习惯得到一些。设计您的代码以捕获异常并在数据库操作发生死锁时重试数据库操作。

相关问题