说一下你对意向锁的理解?

57 阅读1分钟

意向锁出现之前的情况

当一个事物想要修改表结构的时候,会先去遍历这张表的每一行数据有没有加锁。不仅要遍历,还要重试之后继续遍历等等,这就带来了性能问题。

所以意向锁就出现了,它的作用就是为了协调行锁和表锁的关系,支持锁的并行。

意向锁是一种不与行级锁冲突的表级锁。

有了意向锁,就表明了“这张表某个事务持有了锁”

意向锁分为两种:

意向共享锁:事务有意向对表中的某些行加共享锁

意向排他锁:事务有意向对表中的某些行加排他锁

意向锁是有存储引擎自己维护的,用户无法手动操作意向锁,在为数据行加共享/排他锁之前,InooDB会先获取该数据行所在数据表的对应意向锁