今天看啥  ›  专栏  ›  架构师之路

InnoDB,select为啥会阻塞insert?

架构师之路  · 公众号  · 架构  · 2018-08-22 19:35
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);画外音:所以,InnoDB索引和记 ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照