MySQL中的行锁

【饿了么、美团】外卖红包领取地址 >> 能省一点是一点

行锁,顾名思义就是根据条件只锁定表数据中的其中一行数据或几行数据。由于锁的粒度是到行,粒度比表锁小,所以可以更好的减少锁冲突的发生。

在MySQL中,行锁是在引擎层由各个引擎自己实现的。MyISAM引擎不支持行锁,InnoDB支持行锁。

在InnoDB中,行锁有如下几个知识点:

1、超时参数配置

innodb_lock_wait_timeout 默认是50s

2、行锁是通过给索引增加锁来实现的
InnoDB的行锁只有在通过索引条件检索数据时才能使用,否则会升级为表锁。
也就是说,想要使用行级锁,就一定要给使用的where条件加索引,一般来说都是直接使用主键索引

3、行锁的加锁方式是自动加锁
对于UPDATE、DELETE、INSERT操作,InnoDB会自动给涉及的数据集添加排他锁。
对于SELECT操作,InnoDB不会添加任何锁。

4、行锁的上锁和释放时机
在InnoDB事务中,行锁是在需要的时候才加上的,但并不是不需要了就立刻释放,而是要等到事务结束时才释放
所以在开发中可以把最可能造成锁冲突、最可能影响并发度的锁尽量往后放。


觉得内容还不错?打赏个钢镚鼓励鼓励!!👍

大禹 韭菜苗韭菜根种子四季盆栽菲菜根苗紫红根大宽叶蔬菜秋冬季 紫根韭菜根200棵(约2人量 )
¥27.00
颜小荭 爱媛38号果冻橙 应季新鲜采摘橙橘柑子 4.5-5斤精装大果(70-80mm)约8-14个
¥29.90
彩虹作业帮语文小学四年级同步练习册人教版 配检测卷参考答案及点拨 送知识必备帮阅读周周练古诗助记导图
¥26.61
王后雄学案教材完全解读 高中数学3必修第三册 配人教B版 王后雄2022版高一数学配套新教材
¥39.33
草莓生活(CMSH) 迷你保温杯便携口袋杯304不锈钢小容量水杯儿童学生高颜值杯子 【JD发货/渐变色】甜心粉-370ml
¥35.00
曼秀雷敦(Mentholatum) 天然植物润唇膏女 蜂蜜精华补水保湿滋润防干裂淡化唇纹护唇膏唇膜女 【果萃精华】天然植物-香橙
¥26.90
曼秀雷敦丰盈修护润唇膏-鱼子精华 3.8g(滋润防干裂脱皮 淡化唇纹)
¥30.90
亿家通 单耳话务耳机Y300-3.5mm单插头 头戴式耳机/客服耳机/降噪耳机/电销耳麦/商务/教育 直连手机/电脑PC
¥43.00