0%

MySQL 学习笔记(三):索引的作用、设置和注意事项

当表中数据很大的时候,根据条件进行查询时会变的很慢。因此,通过设置索引来加快查询速度就非常有必要了。

索引为什么快?

  1. 索引是有序的,增加索引后可以使用定位算法迅速找到查询的值。
  2. JOIN 时可以快速的根据索引值来判断 JOIN 条件,大大减少了查询次数
  3. 索引空间小,可以放在内存中,加快查询速度。

索引的作用

  1. 加快条件查询(where 和 join)的速度。
  2. 快速找到索引列的最大值和最小值(大大加快 MIN() 和 MAX() 函数的速度)。
  3. 高效完成分类、分组和排序操作(加快 ORDER BY 和 GROUP BY 的速度)。
  4. 如果只查询索引列包含的值时,可以直接从索引中获取相关信息。

索引的注意事项

  1. 为用于搜索、排序和分组的列创建索引,而对于用作输出显示的列不用创建索引。
  2. 认真考虑数据列基数。重复数过高的列不要设置索引。
  3. 让索引尽量短小。索引列的数据类型长度尽量短。
  4. 索引字符串值的前缀。
  5. 利用最左前缀。
  6. 不要建立过多的索引。
  7. 让索引类型和比较类型相匹配。如果是精确查找,散列索引更加高效;如果是范围查找,B 树索引则更加高效。
  8. 利用慢日志查出来性能低下的查询。