概述
- 普通索引
- 唯一索引
- 主键索引
- 联合索引
(1) 普通索引
普通索引是 MySQL 中最基本的索引类型,它没有任何限制,任务就是加快系统对数据的访问速度。
普通索引允许在定义索引的列中插入重复值和空值。
创建普通索引时,通常使用的关键字是 INDEX 或 KEY。
例 1
下面在 tb_student 表中的 id 字段上建立名为 index_id 的索引。
CREATE INDEX index_id ON tb_student(id);
(2) 唯一索引
唯一索引与普通索引类似,不同的是创建唯一性索引的目的不是为了提高访问速度,而是为了避免数据出现重复。
唯一索引列的值必须唯一,允许有空值。如果是组合索引,则列值的组合必须唯一。
创建唯一索引通常使用 UNIQUE 关键字。
例 2
下面在 tb_student 表中的 id 字段上建立名为 index_id 的索引,SQL 语句如下:
CREATE UNIQUE INDEX index_id ON tb_student(id);
(3) 主键索引
顾名思义,主键索引就是专门为主键字段创建的索引,也属于索引的一种。
主键索引是一种特殊的唯一索引,不允许值重复或者值为空。
创建主键索引通常使用 PRIMARY KEY 关键字。不能使用 CREATE INDEX 语句创建主键索引。
(4) 联合索引
联合索引是指对表上的多个列合起来做一个索引
联合索引的最左前缀原则指的是,如果查询条件中没有包含联合索引最左侧的列,那么就不会使用该联合索引进行查询。因此,如果你的查询条件中只包含了联合索引中间或右侧的列,那么该联合索引就无法被利用。