您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

Mysql-InnoDB锁的相关内容介绍

2024/3/21 23:03:53发布25次查看
本篇文章给大家带来的内容是关于mysql-innodb锁的相关内容介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
锁类型
行级锁
锁模式只有lock_s 和lock_x,其他的 flag 用于锁的描述,如前述 lock_gap、lock_rec_not_gap 以及 lock_ordinary、lock_insert_intention 四种描述。(相关推荐:mysql教程)
lock_rec_not_gap
lock_gap
lock_ordinary(next-key lock)
lock_insert_intention
static const byte lock_compatibility_matrix[5][5] = {/** is ix s x ai // is / { true, true, true, false, true},/ ix / { true, true, false, false, true},/ s / { true, false, true, false, false},/ x / { false, false, false, false, false},/ ai / { true, true, false, false, false}};
对于gap类型(锁对象建立在supremum上或者申请的锁类型为lock_gap)且申请的不是插入意向锁时,无需等待任何锁,这是因为不同session对于相同gap可能申请不同类型的锁,而gap锁本身设计为不互相冲突;
lock_ordinary 或者lock_rec_not_gap类型的锁对象,无需等待lock_gap类型的锁;
lock_gap类型的锁无需等待lock_rec_not_gap类型的锁对象;
任何锁请求都无需等待插入意向锁。
表级锁
innodb的表级别锁包含五种锁模式:lock_is、lock_ix、lock_x、lock_s以及lock_auto_inc锁,锁之间的相容性遵循数组lock_compatibility_matrix中的定义。
innodb表级锁的目的是为了防止ddl和dml的并发问题。但从5.5版本开始引入mdl锁后,innodb层的表级锁的意义就没那么大了,mdl锁本身已经覆盖了其大部分功能。
意向锁是表级别的,is和ix锁之间相互并不冲突,但与表级s/x锁冲突。
在对记录加s锁或者x锁时,必须保证其在相同的表上有对应的意向锁或者锁强度更高的表级锁。
以上就是mysql-innodb锁的相关内容介绍的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product