一.什么是索引?
索引是帮助MySQL高效获取数据的排好序的数据结构(本质是一种优化查询的数据结构)
二.为什么要使用索引?
索引的出现就是为了提高查询效率,就一本新华词典,我们通过目录快速锁定要查询的“字”在那一页。其实说白了,索引要解决的就是查询问题。
三.索引的优缺点?
优点:
- 可以有效的提高查询效率;
- 可以加速表与表的连接;
-
可以减少查询中分组和排序的时间
缺点:
- 占据磁盘空间;
- 创建和维护索引消耗时间;
- 对表中的数据进行CRUD时,索引也要同时维护,降低了数据的维护速度。
四.索引的设计原则?
- 数据量小的表最好不要建立索引;
- 不是越多越好,常更新的表越少越好;
- 频繁进行排序或分组的列(group by或者是order by)可以建立索引,提高搜索速度;
- 如保证主键唯一型,可考虑建立唯一性索引;
- 经常用于查询条件的字段应该建立索引。
五.什么时候要创建索引?
- 表中的主关键字自动建立唯一索引;
- where 子