由于 mysql 以这种方式调度执行查询:
有什么好处?
MyISAM 永远不会发生死锁。MySQL 服务器因此可以管理所有争用,显式(锁定表)或隐式(任何 DML)。
只要 MyISAM 表没有删除或更新的记录,并发插入就可以自由发生而不受惩罚。实际上,这将在具有显式读锁的表上包括 INSERT。
对于任何有间隙的表,运行 OPTIMIZE TABLE 将消除这些间隙并再次允许并发插入。
有关更多信息,请阅读“MySQL 5.0 认证学习指南”第 408-412 页第 29.2 节。
MyISAM 没有死锁,但在某种程度上,死锁是对表级锁的改进。
当您尝试从锁定的表中插入/更新/删除时,您需要等到它可用或直到超时(默认为 28800 秒)。对于行级锁定引擎上的死锁,如果它不是空闲的并且服务器检测到某种“无限循环”——其中 2 个连接不会放弃一行——那么它会快速拒绝两个连接,并且陷入僵局。
如果您正在尝试解决死锁,我建议您查看以下内容:
| 归档时间: |
|
| 查看次数: |
7738 次 |
| 最近记录: |