mysql innodb中的锁
创始人
2025-05-30 13:26:58
0

innodb 既支持表级锁,也支持行级锁。

表级锁粒度粗,占用资源少。有时仅仅需要锁定几条记录,如果使用表级锁,相当于给所有记录都加锁,性能低下。

行锁粒度细,可以实现精准并发控制,但是占用资源多。

表级锁

AUTO-INC 锁

在使用 mysql 的过程中,可以为表的某个列添加 AUTO_INCREMENT 属性,之后插入记录时,可以不指定该列的值,自动为它插入递增的值。

自动递增赋值的实现方式主要有两个

采用 AUTO-INC 锁

就是在插入语句执行时就加一个表级别的 AUTO-INC 锁,然后为每条待插入记录的 AUTO_INCREMENT 指定的列分配递增的值。在语句执行结束后,把 AUTO-INC 锁释放掉。

这就造成了一个问题,一个事务在持有 AUTO-INC 锁的过程中,其他事务的插入语句都要被阻塞,从而保证一个语句中分配的递增值是连续的。

这个 AUTO-INC锁的范围只是单个插入语句,在插入语句执行结束后,这个锁就释放了。

采用轻量级的锁

为插入语句生成 AUTO_INCREMENT 指定的列时获取这个轻量级锁,在生成本次插入语句需要用到的 AUTO_INCREMENT 指定的列的值之后,就把该轻量级锁释放掉,不需要等到整个插入语句执行完后才释放锁。

如果插入语句在执行前就可以确定具体要插入多少条记录,一般采用轻量级锁的方式对 AUTO_INCREMENT 指定的列进行赋值。这种方式可以避免锁定表,提升插入性能。

系统变量 innodb_autoinc_lock_mode 用来控制到底使用哪种方式来为 AUTO_INCREMENT 指定的列进行赋值。

innodb_autoinc_lock_mode 为 0,只使用 AUTO-INC 锁。

innodb_autoinc_lock_mode 为 2,只使用轻量级锁。

innodb_autoinc_lock_mode 为 1,两种方式混合。可能会造成不同中的插入语句为 AUTO_INCREMENT 指定的列生成的值是交叉的,在有主从复制的场景中是不安全的。

https://dev.mysql.com/doc/refman/8.0/en/innodb-auto-increment-handling.html

行级锁

Record Locks

又称为记录锁,就是在记录上加的锁。

https://dev.mysql.com/doc/refman/8.0/en/innodb-locking.html#innodb-record-locks

Gap Locks

为了防止插入幻影记录添加的,即 REPEATABLE READ 隔离级别下可以很大程度解决幻读现象。

不允许其他事务在之前的间隙插入记录。

https://dev.mysql.com/doc/refman/8.0/en/innodb-locking.html#innodb-gap-locks

Next-Key Locks

既想锁住某条记录,又想阻止其他事务在该记录前面的间隙插入记录。

本质是 Record Locks 和 Gap Locks 的合体。

在隔离级别为REPEATABLE READ时,InnoDB 会采用 Next-Key 锁的机制,解决幻读问题,相对于隔离级别 SERIALIZABLE,是实现相应功能的一种低成本的方式。

https://dev.mysql.com/doc/refman/8.0/en/innodb-locking.html#innodb-next-key-locks

相关内容

热门资讯

长和出售港口磋商期或延长 随着可能出现的各方介入及交易结构变化,此次长和港口出售交易如继续进行,其复杂性会提升 文 |《财经》...
中航重机涨0.17%,成交额4... 来源:新浪证券-红岸工作室 7月25日,中航重机涨0.17%,成交额4.14亿元,换手率1.52%,...
重仓电子和新能源行业 【深圳商报讯】(记者 陈燕青)基金二季报出炉,公募二季度依然重仓电子、新能源、食品饮料等行业。公募排...
大婚之后,大笔减持!昔日全球首... 当地时间7月25日,亚马逊公司提交至美国证券交易委员会的文件显示,前全球首富、亚马逊创始人杰夫·贝索...
创源股份涨2.32%,成交额3... 来源:新浪证券-红岸工作室 7月25日,创源股份涨2.32%,成交额3.50亿元,换手率8.32%,...
筹备登陆韩国综合股价指数!大韩... 近日,大韩造船(Daehan Shipbuilding)的首次公开募股(IPO)发行价最终确定为每股...
山东政商要情(7.21—7.2... 记者 王惠 1,2025年上半年山东GDP50046亿元 增长5.6% 7月21日,山东省统计局、国...
《法学基本概念导论》| 专研法... 导言 本书是对权利、义务、法律主体、法律规范、法律渊源、法律行为等法学基本概念(juristic f...
上海AI新动向:世界AI合作组... 在今日的天气状况下,上海迎来了阴到多云的天气,偶尔还有阵雨光顾,气温徘徊在27至31摄氏度之间,给市...
山鹰国际跌1.52%,成交额2... 来源:新浪证券-红岸工作室 7月25日,山鹰国际跌1.52%,成交额2.50亿元,换手率2.33%,...
马斯克擎天柱解决不了无「手」难... 新智元报道 编辑:英智 【新智元导读】马斯克说人形机器人是特斯拉的未来,可今年5000台的目标才刚...
开封警方回应网传“释永信相关警... 7月27日,开封市公安局官方微博回复网友评论时表示:“(网传释永信相关)通报是假的,请不要再传播,目...
创新业务模式 提升开放水平 近日,在东营综合保税区食用油分装生产车间,工人们正在进行进口豆油灌装作业。 近年来,东营综合保税区...
中国资本市场学会成立!吴清当选... 来源:证监会发布 2025年7月26日,中国资本市场学会成立大会暨第一届第一次会员代表大会在上...
本周外盘看点丨美联储最新决议来... 来源:第一财经 欧美二季度GDP表现如何,特朗普关税谈判“大限”到来。 上周国际市场风云变幻,美国...
生态环境部逯世泽:全国碳市场量... 21世纪经济报道记者雷椰 李德尚玉 北京报道 7月26日,由冶金工业规划研究院主办,中国节能协会冶金...
原创 帮... 刚刚,后台好多朋友问,帮主啊,国家统计局刚发了上半年的工业利润数据,下降了1.8%,这是不是经济不行...
“国补”来了!第三批690亿元... 国家发展改革委下达今年第三批690亿元超长期特别国债支持消费品以旧换新资金。 2025年以来,国家发...
海拍客IPO,创始人抵押价值上... 瑞财经 严明会 6月30日,Yangtuo Technology Inc.(以下简称“海拍客”)向港...
提前涨停!快递巨头出手:收购! 【导读】布局品质快递,申通快递以3.62亿元收购菜鸟旗下丹鸟物流 中国基金报记者 杨晨 7月25日晚...