MySQL的InnoDB的细粒度行锁,是它最吸引人的特性之一。
但是,如《InnoDB,5项最佳实践》所述,如果查询没有命中索引,也将退化为表锁。
InnoDB的细粒度锁,是实现在索引记录上的。
一,InnoDB的索引
InnoDB的索引有两类索引,聚集索引(Clustered Index)与普通索引(Secondary Index)。
InnoDB的每一个表都会有聚集索引:
(1)如果表定义了PK,则PK就是聚集索引;
(2)如果表没有定义PK,则第一个非空unique列是聚集索引;
(3)否则,InnoDB会创建一个隐藏的row-id作为聚集索引;
为了方便说明,后文都将以PK说明。
索引的结构是B+树,这里不展开B+树的细节,说几个结论:
(1)在索引结构中,非叶子节点存储key,叶子节点存储value;
(2)聚集索引,叶子节点存储行记录(row
继续阅读与本文标签相同的文章
上一篇 :
系统性能优化工具集合与使用技巧
下一篇 :
数据库索引,到底是什么做的?
-
zynq中PS访问BRAM(一)
2026-05-21栏目: 教程
-
zynq中PS访问BRAM(二)
2026-05-21栏目: 教程
-
Reactive Programming 一种技术,各自表述
2026-05-21栏目: 教程
-
如何优雅地使用对象云存储-.NET篇
2026-05-21栏目: 教程
-
1分钟了解MyISAM与InnoDB的索引差异
2026-05-21栏目: 教程
