专业编程教程与实战项目分享平台

网站首页 > 技术文章 正文

MySQL中InnoDB引擎的行锁是怎么实现的?

ins518 2024-11-14 16:41:23 技术文章 9 ℃ 0 评论

为什么要使用锁?

当数据库有并发事务的时候,可能会产生数据的不一致,这时候需要一些机制来保证访问的次序,锁机制就是这样的一个机制。


MySQL中InnoDB引擎的行锁是怎么实现的?

InnoDB 行锁是通过给索引上的索引项加锁来实现的,这一点 MySQL 与 Oracle 不同,Oracle是通过在数据块中对相应数据行加锁来实现的。
InnoDB 这种行锁实现特点意味着:只有通过索引条件检索数据,InnoDB 才使用行级锁,否则,InnoDB 将使用表锁!

例如:

select * from tab_with_index where id = 1 for update;

for update 可以根据条件来完成行锁锁定,并且 id 是有索引键的列,如果 id 不是索引键,那么InnoDB将完成表锁,并发将无从谈起。


MySQL 从锁的粒度划分为哪几种锁?

InnoDB引擎:支持表锁和行锁。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表