- 索引是什么?
索引是存储引擎用于快速找到记录的一种数据结构,让服务器快速定位到表的指定位置。 - 索引的算法实现?
InnoDB是B+树,Memory是Hash(哈希索引). - 聚簇索引、二级索引、非聚簇索引、覆盖索引、压缩(前缀压缩)索引
聚簇索引:聚簇索引是建立在主键上的。索引树的叶子节点包含真正的数据,也就是索引树和数据整合在一颗树上了,InnoDB里的*.idb文件,一张表的数据和索引文件。
二级索引:也有说是辅助索引,普通索引的叶子节点有指针指向数据的物理地址,而二级索引的指针却是指向了聚簇索引的主键值。
非聚簇索引:一般通过create或者alter命令创建的索引,使用的最多,叶子节点指针指向数据的物理地址
覆盖索引:select的列在索引树上,直接从该索引树上返回,不需要再找实际地址。例如:索引(name,age,gender); select name from ***,在满足使用索引(name,age,gender)的条件下
压缩索引:MyISAM采用,为了让更多的索引得以放入内存,默认只压缩字符串。例如:索引树中有节点为“perform”,有节点“performance”,第二个节点的前缀压缩后类似于“7,ance”.