12
返回列表 发新帖
楼主: ming201206

[原创] mysql innodb lock gap ICP 求解惑

[复制链接]
论坛徽章:
5
复活蛋
日期:2012-11-02 16:27:37灰彻蛋
日期:2013-01-27 17:08:112013年新春福章
日期:2013-02-25 14:51:24复活蛋
日期:2013-05-27 15:29:10优秀写手
日期:2014-07-01 06:00:12
11#
发表于 2015-11-24 17:19 | 只看该作者
本帖最后由 digdeep126 于 2015-11-25 16:30 编辑
dianluxitike 发表于 2015-11-24 15:03
正解,这也是我的理解。对于区间锁定问题,假设区间为 a < X  < b。 对于左操作数,只会锁定区间而不会锁 ...

是的。b=3,不会锁定 b=1和b=6,但是会锁定 b值在(1,3)和(3,6)的区间。

不可以再插入任何一条如(2,1)(2,6),(3,1),(3,6),(4,1),(4,6)
的原因是:这些记录在gap之中。
(2,1) 显然是存在于(1,1) 和 (5,3) 的gap中的,其它的类似。 因为 a 是主键,而 b上的索引是包括了主键的。
因为 (0,1) 不存在于 (1,1) 和 (5,3) 的gap中的,所以是可以成功插入的。

对于a 在(5,8)区间
我的测试时 可以插入 (6,0), (7,7) 等等不在gap 中的记录的。当然 a=5,8的任何记录都不能插入,因为被X锁锁住了。

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表