mysql中select会锁表吗?如果锁表,锁表范围怎么样(程序员
必知)
mysql中select会锁表吗?正确答案是会锁表,有些情况是表锁,有些情况是⾏锁。
有的认为mysql的 select 会锁表 ,有的认为 mysql 的查询不会锁表 。
其实这2种观点都有些⽚⾯。
锁表跟存储引擎INNODB 和MYISAM关系很⼤。
对于myisam的表select 是会锁定表的 ,会导致其他操作挂起,处于等待状态。
对于innodb的表select 有些情况是表锁,有些情况是⾏锁。
由于InnoDB预设的是Row-Level Lock,只有明确指定主键的时候MySql才会执⾏Row lock,否则MySql将会执⾏Table Lock.
1、明确指定主键则是⾏锁
2、明确指定主键,若⽆数据则⽆锁
3、⽆主键,table lock
4、主键不明确,table lockmysql 要钱吗
注:MyAsim只⽀持表级锁,InnerDB⽀持⾏级锁,添加了(⾏级锁/表级锁)锁的数据不能被其他事务再锁定。也不能被其他事务修改。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论