关于MySQL Innodb锁的几个问题
时间:2011-08-01
来源:互联网
最近开始研究MySQL,对于Mysql innodb锁的实现,有一些地方不太明白,请教各位:
1. MySQL默认的隔离级别是repeatable read,但这个隔离级别会导致更严重一些的锁问题,我觉得一般用read committed就足够了。
大家在生产环境中一般用的是那种隔离级别?
2. 测试还发现以下问题,在默认的隔离级别下,对于某一个表t,
1) 如果t.a上有唯一索引或者主键,则
select * from t where a>'xx' lock in share mode; 会阻塞所有其他在该表上的DML
select * from t where a<>'xx' lock in share mode; 会阻塞所有其他在该表上的DML
select * from t where a<'xx' lock in share mode; 如果要修改的值<=xx,则DML会被阻塞;如果要修改的值>xx,则可以正常执行。
2) 如果t.a没有索引或者是普通索引,则以上三个SQL都会阻塞其他的所有DML操作。
我的疑问是:
1)mysql innodb默认使用的是next-key lock锁定方式,但为什么 a>xx会阻塞所有的DML,而a<xx只阻塞部分的DML?按我的理解,这两部分是差不多的,都只会阻塞部分的DML。
2)t.a是普通索引的情况下,为什么所有情况都会阻塞DML操作?是因为锁定代价太高吗?
谢谢
1. MySQL默认的隔离级别是repeatable read,但这个隔离级别会导致更严重一些的锁问题,我觉得一般用read committed就足够了。
大家在生产环境中一般用的是那种隔离级别?
2. 测试还发现以下问题,在默认的隔离级别下,对于某一个表t,
1) 如果t.a上有唯一索引或者主键,则
select * from t where a>'xx' lock in share mode; 会阻塞所有其他在该表上的DML
select * from t where a<>'xx' lock in share mode; 会阻塞所有其他在该表上的DML
select * from t where a<'xx' lock in share mode; 如果要修改的值<=xx,则DML会被阻塞;如果要修改的值>xx,则可以正常执行。
2) 如果t.a没有索引或者是普通索引,则以上三个SQL都会阻塞其他的所有DML操作。
我的疑问是:
1)mysql innodb默认使用的是next-key lock锁定方式,但为什么 a>xx会阻塞所有的DML,而a<xx只阻塞部分的DML?按我的理解,这两部分是差不多的,都只会阻塞部分的DML。
2)t.a是普通索引的情况下,为什么所有情况都会阻塞DML操作?是因为锁定代价太高吗?
谢谢
作者: space6212 发布时间: 2011-08-01
这是因为你加了lock in share mode ,这个锁的原因,对于RR模式,没有必要这样做的
推荐阅读文章:MySQL_InnoDB之事务与锁详解
http://www.mysqlops.com/2011/02/ ... AF%A6%E8%A7%A3.html
推荐阅读文章:MySQL_InnoDB之事务与锁详解
http://www.mysqlops.com/2011/02/ ... AF%A6%E8%A7%A3.html
作者: jinguanding 发布时间: 2011-08-01
QUOTE:原帖由 jinguanding 于 2011-8-1 10:19 发表
这是因为你加了lock in share mode ,这个锁的原因,对于RR模式,没有必要这样做的
推荐阅读文章:MySQL_InnoDB之事务与锁详解
http://www.mysqlops.com/2011/02/ ... AF%A6%E8%A7%A3.html
这是因为你加了lock in share mode ,这个锁的原因,对于RR模式,没有必要这样做的
推荐阅读文章:MySQL_InnoDB之事务与锁详解
http://www.mysqlops.com/2011/02/ ... AF%A6%E8%A7%A3.html
金兄,你推荐的那个文章没有能解答我的疑问啊。
能否逐一回答下我原帖中疑惑,谢谢了

作者: space6212 发布时间: 2011-08-01
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28