意向锁是什么知道吗?

意向锁是一种表级锁,与插入意向锁不要混淆。

意向锁的引入是为了支持InnoDB的多粒度锁,并解决表级锁和行级锁共存的问题。

当需要给表加表级锁时,我们需要判断表中是否有数据行被锁定,以确定是否能成功加锁。

如果没有意向锁,那么我们需要遍历表中的所有数据行来判断是否存在行级锁。

但是有了意向锁这个表级锁之后,我们只需要进行一次判断,就可以知道表中是否有数据行被锁定。

在引入意向锁之后,在事务A申请行级锁(写锁)之前,数据库会自动为事务A申请表的意向排他锁。当事务B尝试申请表的互斥锁时,会因为表上存在意向排他锁而失败。因此,事务B在申请表的互斥锁时会被阻塞。

标签: java, Java面试题, MySQL, Java问题合集, MySQL面试题, Java编程, Java问题精选, Java常见问题