概念:主键/二级/辅助/唯一/普通/前缀/全文索引
- 二级索引又称为辅助索引,是 InnoDB 中除了主键索引外的其他索引。因为这些索引的叶子节点中存储的数据是主键。也就是说,通过二级索引,可以定位主键的位置。
- 唯一索引 (Unique Key) :不能重复,但可以为 NULL,一张表允许创建多个唯一索引,目的是保证数据的唯一性。
- 普通索引 (Index) :可重复,可为 NULL,一张表允许创建多个普通索引,目的是加快查询效率。
- 前缀索引 (Prefix) :前缀索引只适用于字符串类型的数据。前缀索引是对文本的前几个字符创建索引。
- 全文索引 (Full Text) :目的是检索大文本数据中的关键字的信息。
- 索引结构和数据一起存放的索引。主键索引属于聚集索引。
InnoDB 引擎没有显示指定主键时,先检查是否有唯一索引字段,有则认为是默认主键,否则自动创建一个 6Byte 的自增主键。
唯一索引可以为 NULL。
聚集索引 & 非聚集索引 - 概念 & 优缺点
概念:索引结构与数据存放在一起的是聚集索引,分开存放的是非聚集索引。
聚集索引的优点:查询速度快,基于主键的排序+范围查找快。
聚集索引的缺点:插入速度依赖于插入顺序,更新主键代价高。
非聚集索引的优点:叶子不放数据,更新代价更小。
非聚集索引的缺点:可能需要二次回表查询。
题目:MySQL 8.0 索引新特性有哪些?
降序索引:创建索引时,可以指定某列降序。不过查询时顺序要和索引一致,否则效率不一定变高。
隐藏索引:可以暂时不使用索引,待确认删除索引影响不大后,可以再显示彻底删除索引。避免数据规模较大时,先删除后创建索引,消耗较大的资源。