Mysql索引解读

128 阅读2分钟

索引设计原则

索引设计不合理或者缺少索引都会对数据库和应用程序的性能造成障碍。高效的索引对于获得良好的性能非常重要。

  • 索引并非越多越好,过多的索引不仅会占用磁盘空间,而且还影响插入,删除,更新操作,因为每一次操作索引都会调整和更新。
  • 避免对经常更新的表做过多的索引进行过多的索引,并且索引列尽量少,对于经常查询的字段进行索引。
  • 数量小的表不要用到不同值较多列上坐上索引,普通查询的效率也许都高于索引数据。
  • 在条件表达式中经常用到不同值较多的列上做索引,在不同值很少列上不要建立索引。
  • 当唯一性是某种数据本身特征时,做唯一索引,唯一索引能确保定义数据完整性,以提高查询效率。
  • 在频繁进行排序或分组的列上建立索引,如果组合列很多,建立组合索引。

创建索引

创建普通索引 (INDEX)

最基本的索引,没有唯一性区别,其作用只是加快数据访问速度。

创建唯一索引(UNIQUE INDEX)

减少查询索引列执行的时间,它与普通索引的区别就是,索引列必须是唯一,但允许为空,如果是组合索引,组合必须是唯一的。

单列索引 (INDEX SingleIdx)

单列索引是在数据表中某一个字段创建索引,一个表可以创建多个单列索引

组合索引 (INDEX MutliIdx)

组合索引是在多个字段创建一个索引

尽量使用短索引

对字符串类型进行索引,如果指定一个前缀长度,就不用做全长索引,只索引前缀,这样不仅仅提高查询效率,还能较少IO开销,节省磁盘空间。