1.什么是索引?
可以称索引是一种数据结构。
2.为什么使用索引?
索引在 MySQL 中也叫做“键”,是存储引擎用于快速找到记录的一种数据结构。索引优化应该是对查询性能优化最有效的手段、善用索引能够轻易将查询性能提高好几个数量级。简单理解:优化查询速度。
3.索引的优劣:
索引的优势:
可以快速检索,减少 I/O 次数,加快检索速度;根据索引分组和排序,可以加快分组和排序。
索引的劣势:
1).索引本身也是表,因此会占用存储空间,一般来说索引表占用的空间是数据表的 1.5 倍;
2).索引表的维护和创建需要时间成本,这个成本随着数据量增大而增大;
3).构建索引会降低数据表的修改操作(删除,添加,修改)的效率,因为在修改数据表的同时还需要修改索引表。
索引四字总结:加速查询。
4.索引的使用规则
1)适合建立索引的情况
A.主键自动建立唯一索引
B 经常作为查询条件在where或者order by语句中出现的列要建立索引
C 作为排序的列要建立索引
D 查询中与其他表关联的字段,外键关系建立索引;
E 高并发条件下倾向组合索引
F 用于聚合函数的列可以建立索引,则如使用了max(column_1)或者count(column_1)时的column_1就需要建立索引
2)不适合建立索引的情况
A 经常增删改的列不需要建立索引
B 有大量重复的列不建立索引
C 表记录太少不要建立索引