当表中数据很大的时候,根据条件进行查询时会变的很慢。因此,通过设置索引来加快查询速度就非常有必要了。
索引为什么快?
- 索引是有序的,增加索引后可以使用定位算法迅速找到查询的值。
- JOIN 时可以快速的根据索引值来判断 JOIN 条件,大大减少了查询次数
- 索引空间小,可以放在内存中,加快查询速度。
索引的作用
- 加快条件查询(where 和 join)的速度。
- 快速找到索引列的最大值和最小值(大大加快 MIN() 和 MAX() 函数的速度)。
- 高效完成分类、分组和排序操作(加快 ORDER BY 和 GROUP BY 的速度)。
- 如果只查询索引列包含的值时,可以直接从索引中获取相关信息。
索引的注意事项
- 为用于搜索、排序和分组的列创建索引,而对于用作输出显示的列不用创建索引。
- 认真考虑数据列基数。重复数过高的列不要设置索引。
- 让索引尽量短小。索引列的数据类型长度尽量短。
- 索引字符串值的前缀。
- 利用最左前缀。
- 不要建立过多的索引。
- 让索引类型和比较类型相匹配。如果是精确查找,散列索引更加高效;如果是范围查找,B 树索引则更加高效。
- 利用慢日志查出来性能低下的查询。