索引
1.简历索引的时候要根据列基数来判断:
列基数=列中不同的数据/该列总数据,越接近1,重复越少,越适合做索引;
2.在查询时,当查询结果占总结果1/5时,会默认进行全表查询;
3.查询条件有日期索引和其他条件的话,必须满足所有条件都有索引,才会触发日期索引。
4.MYISAM
1》该引擎使用B-Tree索引结构,叶节点的Data储存数据指向的地址;
2》辅助索引与主索引一致,唯一不同的是主索引的key值可以重复;
3》该索引为非聚集索引,非聚簇索引:索引过程只执行一遍;
4》该引擎的检索文件和数据文件分离,检索文件只储存数据指向地址。
5.InnoDB
1》该引擎的数据文件和索引文件为同一个文件,叶节点的Data域存储主键的数值;
2》该索引为聚集索引,且按照主键聚集;
3》聚簇索引:索引执行两遍,第一遍辅助索引获取主键id,再根据主索引根据id查询数值。
6.索引分为单列索引和组合索引,组合索引遵循“左前缀原理”。
7.创建索引会占用磁盘空间。
8.索引相关指令:
1》创建索引:create index AAA on tableName(column(length))
2》修改表结构:alert table tableName add index AAA(column)
3》删除索引:drop index AAA on tableName
4》查询是否有索引:show index from tableName
9.索引优化
1》为索引条件构建全文索引
2》使用短索引
10.索引的类型
普通索引,主键索引,唯一索引,组合索引。