分类

  1. 普通索引/唯一索引UNIQUE

    • 普通索引:基本索引类型,允许列中出现空值和重复值

    • 唯一索引:

      • 值唯一,允许控制。

      • 组合索引的情况下,组合值需唯一

      • 主键索引是特殊的唯一索引,不许空值

  2. 单列索引/组合索引

    • 组合索引:只有查询条件中使用了组合字段的左边字段才会触发索引,遵循左前缀集合。
  3. 全文索引 FULLTEXT

    • 允许重复、空值

    • 在 char/varchar/text 类型上创建

    • MyISAM 支持

  4. 空间索引 SPATIAL

    • 针对空间数据类型:geometry、point、linestring、polygon

    • 非空索引

设计原则

  1. 索引数量适度原则,一个表中的索引字段不是越多越好

  2. 经常更新的表少索引,常查询的才做索引

  3. 数据量少的不要做,查询表的时间有可能比遍历索引的还快,效果不明显

  4. 列的取值很少的不需要做索引,比如:性别

  5. 某数据本身具有唯一性特征是,唯一索引会加速查询

  6. 频繁进行排序分组的列建索引,多字段建立组合索引

意义

  1. 优点

    1. 创建唯一索引,保证行数据的唯一性

    2. 加快查询速度

    3. 使用分组和排序字句查询数据,可减少查询中分组和排序的时间

  2. 缺点

    1. 索引的创建、维护耗费额外的时间,随数据量增加,消耗的额外时间会增加

    2. 索引需要占用额外的存储空间,当索引量过多时,索引文件可能会比数据文件还大

    3. 数据的操作会同步东塔爱作用在索引上,降低了维护速度

写在最后

版本内容时间
v1.0.01. 初始化文档2020-05-28 17:03:02