MySQL中的索引

119 阅读2分钟

索引是对数据库表中的一列或多列值进行排序的一种结构,使用索引可以快速访问数据库表中的特定信息。索引是一种特殊的文件,它们包含着对数据表里所有记录的位置信息。更通俗的说,数据库索引好比是一本书前面的目录,能加快数据库的查询速度。MySQL索引的建立对于MySQL 的高效运行是很重要的,索引可以大大提高MySQL 的检索速度。

索引优点

  • 通过创建唯一性索引,可以保证数据库表中的每一行数据的唯一性;
  • 可以加快数据的检索速度;
  • 可以加速表与表之间的连接;
  • 在使用分组和排序进行检索的时候,可以减少查询中分组和排序的时间;

什么时候需要创建索引

  • 频繁作为查询条件的字段应该创建索引;
  • 查询中排序的字段创建索引将大大提高排序的速度(索引就是排序加快速查找);
  • 查询中统计或者分组的字段;

什么时候不需要创建索引

  • 频繁更新的字段不适合创建索引,因为每次更新不单单是更新记录,还会更新索引,保存索引文件;
  • where条件里用不到的字段,不创建索引;
  • 表记录太少,不需要创建索引;
  • 经常增删改的表;
  • 数据重复且分布平均的字段,因此为经常查询的和经常排序的字段建立索引。注意某些数据包含大量重复数据,因此他建立索引就没有太大的效果,例如性别字段,只有男女,不适合建立索引;

MySQL中的索引类型

  • 普通索引: 最基本的索引,它没有任何限制。
  • 唯一索引: 索引列的值必须唯一,但允许有空值,如果是组合索引,则列值的组合必须唯一。
  • 主键索引: 特殊的索引,唯一的标识一条记录,不能为空,一般用primary key来约束。
  • 联合索引: 在多个字段上建立索引,能够加速查询到速度。