MyIsam会发生死锁吗

XDMonkey
  • 129

MyIsam只支持表锁,很多地方就此说MyIsam不会发生死锁,是这样吗?如果我两个事务查询两张表同时加写锁,但是加锁顺序不一样,会死锁吗

回复
阅读 2.9k
2 个回答
✓ 已被采纳

MyIsam不支持事务。myisam的每次的读写都会隐性的加上读写锁,并未出现过锁死的情况。读锁是共享的,而写锁是独占的,意味一个session在写的时候,另一个session必须等待

比如client 1、2都需要两个表a,b。如果在两条语句中,那么不肯能死锁,因为client1的语句1用完a就释放了,因为没有事务所以不会继续持有锁,client2最多等等,不会死锁。
如果在一条语句中,那么获取锁的顺序是一致的,顶多等等也不会死锁,因为没有循环等待。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏