Mysql锁类型和加锁分析
2023-08-31 本文已影响0人
鳌拜的弟弟熬夜
MySQL有三种锁的级别:页级、表级、行级。
表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。
行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度最高。
页面锁:开销和加锁时间介于表锁和行锁之间;会出现死锁;锁定粒度介于表锁和行锁之间,发生锁冲突的概率、并发度也都介于表锁和行锁之间。
算法:
● Next-KeyLocks锁,同时锁住记录(数据),并且锁住记录前面的Gap。
● Gap锁,不锁记录,仅仅记录前面的Gap。
● Recordlock锁,锁数据,不锁Gap。
● 所以Next-KeyLocks = Gap锁 + Recordlock锁。