MySQL 索引分类有哪些?

在MySQL的InnoDB存储引擎中,大致可以将索引分为以下四类:

  1. 主键索引 (Primary Key):主键索引是所有InnoDB表必须的,且一个表中只能有一个主键索引。InnoDB的数据文件就是按照主键顺序存放的,也就是聚簇索引。主键索引的选择对查询的性能有很大的影响。

  2. 唯一索引 (Unique Index):唯一索引中的键值必须唯一,但允许有空值。如果是组合索引,则组合的值必须唯一。

  3. 普通索引 (Normal Index) 或非唯一索引:这是最基本的索引,没有任何约束。

  4. 全文索引 (Fulltext Index):主要用于全文搜索,即针对大文本进行的搜索。MySQL的InnoDB和MyISAM存储引擎都支持全文索引。但是,InnoDB的全文索引在功能和性能上与MyISAM存在差距,如需对全文索引的性能要求较高,或者对全文索引的更高级功能有所要求,建议使用MyISAM存储引擎。

这四种索引对应了不同的应用场景,例如主键索引是一种特殊的唯一索引,不仅要求索引的唯一性,还要求表中每一行数据都必须有一个唯一索引,它是每个表中的主键字段。非唯一索引允许表中有重复的键值。全文索引用于InnoDB表或者MyISAM表的全文搜索。

发表评论

后才能评论