先从索引结构说:
mysql 的索引结构是 B+Tree
- 非叶子节点不存储指针;
- 叶子节点存储数据;
- mysql 的 b+树 叶子节点有双向指针(适合范围查询);
不同存储引擎 索引结构有点不同,
MyISAM 索引(主键和非主键)叶子节点存储记录所在页的指针,这种索引为非聚簇索引;
InnoDB 主键索引叶子节点存储完整的数据记录,这种索引为聚簇索引,非主键索引叶子节点存储主键值(节省空间,以防数据修改时维护困难);
InnoDB 必须含有主键索引(如果没有,innodb会自己新建一个),并且建议主键索引为自增主键(节省存储空间,插入的时候排序和