一、索引的创建与使用
1、索引的分类
MySQL的索引包括普通索引、唯一性索引、全文索引、单列索引、多列索引和空间索引等。
(1)从 功能逻辑 上说,索引主要有 4 种,分别是普通索引、唯一索引、主键索引、全文索引。
(2)按照 物理实现方式 ,索引可以分为 2 种:聚簇索引和非聚簇索引。
(3)按照 作用字段个数 进行划分,分成单列索引和联合索引
玩转Mysql 七 (索引的创建与设计原则)-CSDN博客
解析:聚簇索引和非聚簇索引的区别
聚集索引一个表只能有一个,而非聚集索引一个表可以存在多个。聚集索引存储记录是物理上连续存在,物理存储按照索引排序,而非聚集索引是逻辑上的连续,物理存储并不连续,物理存储不按照索引排序。
聚簇索引的顺序就是数据的物理存储顺序,而对非聚簇索引的解释是:索引顺序与数据物理排列顺序无关。正是因为如此,所以一个表最多只能有一个聚簇索引。
索引是一种特殊的数据结构。两种索引:聚集索引(Clustered Index,也称聚类索引、簇集索引、聚簇索引)和非聚集索引(Nonclustered Index,也称非聚类索引、非簇集索引)。创建的索引,如复合索引、前缀索引、唯一索引,都是属于非聚簇索引,在有的书籍中,又将其称为辅助索引(secondary index)。在后文中,我们称其为非聚簇索引,其数据结构为B+树。
聚簇索引就是按照每张表的主键构造一颗B+树,同时叶子节点中存放的就是整张表的行记录数据,也将聚集索引的叶子节点称为数据页。Innodb通过主键聚集数据,如果没有定义主键,innodb会选择非空的唯一索引代替。如果没有这样的索引,innodb会隐式的定义一个主键来作为聚簇索引。
二、执行计划
MySQL 执行计划详解 | 京东物流技术团队 - 知乎
关于Mysql的执行计划讲解最好的一篇文章! - 知乎