+ -
当前位置:首页 → 问答吧 → 关于索引锁表方面的讨论

关于索引锁表方面的讨论

时间:2011-10-19

来源:互联网

今天我又对如果利用索引避免锁表方面进行了测试

对于索引的间隙锁,本以为锁定的是索引键值的范围,即满足最小键值至最大键值的记录被锁定

比如我对表中的user_id加索引,修改user_id >=1 and user_id <=3的记录; 或者user_id IN (1,3)
本以为是对user_id为2的记录会上锁,对user_id为4的记录便不会上锁。

但实际发现貌似这样的语句不能利用索引,引起了全表锁定,不知道我的理解是否正确?

作者: wfevgch   发布时间: 2011-10-19

userid上有索引吗

用的什么引擎

作者: rucypli   发布时间: 2011-10-19

引用楼主 wfevgch 的回复:
今天我又对如果利用索引避免锁表方面进行了测试

对于索引的间隙锁,本以为锁定的是索引键值的范围,即满足最小键值至最大键值的记录被锁定

比如我对表中的user_id加索引,修改user_id >=1 and user_id <=3的记录; 或者user_id IN (1,3)
本以为是对user_id为2的记录会上锁,对user_id为4的记录便不会上锁。

但实际发现貌似这样的语句……


你mysql的存储引擎是myisam还是innodb呢?

作者: mchdba   发布时间: 2011-10-19

你的show index 和查询语句是什么? 理论上INNODB应该是只锁记录。

作者: ACMAIN_CHM   发布时间: 2011-10-19

嗯 用的是innodb,user_id不是主键,建的索引

作者: wfevgch   发布时间: 2011-10-19

相关阅读 更多

热门下载

更多