特色:sql
InnoDB默认为每一行记录添加了三个字段:ui
每一个InnoDB表都有一个用来存储全部行数据的特殊索引:Clustered Index
。全部行数据都是经过聚簇索引来组织存储的。 一般状况下,聚簇索引是主键的代名词。指针
若是没有为InnoDB表定义一个主键,Mysql会选择表中第一个非空的惟一索引列
作为聚簇索引。若该表没有主键或合适的惟一索引列,InnoDB内部会在包含row ID的虚拟列上生成一个隐藏的聚簇索引。Row ID的值是根据新插入记录的顺序而单调递增的。code
官方文档:索引
If the table has no PRIMARY KEY or suitable UNIQUE index, InnoDB internally generates a hidden clustered index on a synthetic column containing row ID values. Thus, the rows ordered by the row ID are physically in insertion order.事务
除了聚簇索引以外的全部索引称为辅助索引。文档
在InnoDB中,辅助索引的每一条记录存储该行的全部主键字段,这些主键字段。InnoDB使用主键的值在聚簇索引中查找对应的记录。it
transaction ID
字段和7个字节的roll pointer
字段。row ID
字段。覆盖索引:从辅助索引中就能够获得查询的记录,而不须要查询聚簇索引中的记录。io
使用覆盖索引的好处: 辅助索引不包含整行记录的全部字段信息,故其大小远小于聚簇索引,所以能够减小大量的IO操做。table
特色: