目录
初识索引
定义:建立在表之上,由单列或多列组成,旨在提高查询效率
作用:
- 提高查询速度
- 确保数据的唯一性
- 加速表与表之间的连接,实现表与表之间的参照完整性
- 使用分组和排序子句进行数据检索时,缩短分组和排序时间
- 全文检索字段进行搜索优化
索引分类&原则
分类:
- 主键索引(PRIMARY KEY)
- 唯一索引(UNIQUE)
- 常规索引(INDEX)
- 单列索引
- 多列索引
- 全文索引(FULLTEXT) mysql 5.6 InnoDB开始支持全文索引
- 聚集索引、非聚集索引、空间索引
原则:
- 对于查询频率高的,可以设置索引
- 对于排序、分组、联合查询频率高
- 索引数目不易太多(每创建一个索引,都会占用物理空间;insert update delete 效率会降低)
- 若实际多列需要设置索引,采用多列索引 (如:index index_name(StudentNo,StudentName,Sex...),只有在第一列使用时才启用索引(如:select * from student where StudentNo=111)
- 尽量在字节占用少的列添加索引
- 若在字符类型上添加索引,尽量添加在长度小的列上
检测索引是否启用 explain
主键索引(PRIMARY KEY)
作用:某一个属性组能唯一标识一条记录
如:学生表(学号,姓名,性别,班级等),学号就是唯一标识,可作为主键
特点:
- 最常见的索引类型
- 确保数据记录的唯一性
- 确保特定数据记录在