1. 索引是什么?
索引本身是一种数据结构(B+树),相当于数据库表的目录
2. 索引的种类
2.1 唯一索引 ,2.2 单值索引,2.3 聚合索引, 2.4 主键索引,2.5 全文索引
3. 创建索引的语法: alter table 表名 add Index '索引名'(列)
4. 如何触发
4.1 使用联合索引的全部索引键可触发联合索引(不能用or连接)
4.2 单独使用联合索引的左边第一个字段时,可触发联合索引
4.3 主键索引与唯一索引的区别在于唯一索引的值可为空
5. 索引的优势
5.1 提高查询效率(降低IO使用率)
5.2 降低CPU使用率
比如查询order by 列 desc,因为B+树本身就是排好序的,所以查询如果触发了索引就不用再从新查询了
6. 索引的弊端
6.1 索引本身占用内存或硬盘很大
6.2 索引不是索引情况都适用的,比如: 1. 少量数据 2. 频繁变化的字段 3. 使用少的字段
6.3 索引会降低增删改的效率
7. 名词解释
7.1 FULLTEXT: 全文索引 7.2 NORMAL: 普通索引 7.3 UNIQUE: 唯一索引 7.4 SPATIAL: 空间索引
8. 实际使用中,应该选取那些字段作为索引?
8.1 选择唯一性索引
8.2 为经常需要排序、分组和联合操作的字段作为索引
8.3 为经常需要作为查询字段做为索引
8.4 限制索引的条数(一般不超3个)
8.5 尽量使用数据量少的索引
8.6 删除不在使用的索引或者使用很少的索引
8.7 经常更新修改的字段不要建立索引
8.8 不推荐在同一列建多个索引