Mysql InnoDB 使用的锁
抽象-提炼-总结
细节-> 抽象-> 一句话表达
InnoDB 引擎支持表锁、行锁。
IS 锁
意向共享锁
IX 锁
意向排他锁
S 锁
X 锁
行锁:
单个记录上的锁。
间隙锁:
锁定一个范围,但不包含记录本身。
目的是为了防止幻读。
防止间隙内有新数据插入或已存在的数据更新为间隙内的数据。
临键锁:
间隙锁加行锁。
说明:锁定一个范围,并锁定记录本身。对于行的查询,都是采用该方法。
目的是解决幻读的问题。
InnoDB 默认的加锁方式是临键锁。
总结:行锁、间隙锁、临键锁这三种锁都是排他锁(X 锁)。
Mysql 的其他概念:
快照读
当前读
版权声明: 本文为 InfoQ 作者【water】的原创文章。
原文链接:【http://xie.infoq.cn/article/210e81d763620fd13aa953ed9】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论