一、索引分类

1.1、索引的分类有以下几种:

1)单值索引:即一个索引只包含单个列,一个表可以有多个单列索引。

2)唯一索引:索引列的值必须唯一,但允许有空值。

3)复合索引:一个索引包含多个列,如INDEX MultiIdx(id,name,age)

4)全文索引:只有在MyISAM引擎上才能使用,只能在CHAR、VARCHAR、TEXT类型字段上使用全文索引。

5)空间索引:空间索引是对空间数据类型的字段建立的索引。

二、索引操作

2.1、创建索引

语法:CREATE INDEX 索引名称 ON table (column[,column]...);

CREATE INDEX ID_INDEX ON emp (ID);CREATE INDEX NAME_INDEX ON emp (NAME);

2.2、删除索引

语法:DROP INDEX 索引名称 ON 表名;

DROP INDEX NAME_INDEX ON emp;

2.3、查看索引

语法:SHOW INDEX FROM 表名;

SHOW INDEX FROM emp;

2.4、自动创建索引

1)在表上定义了主键时,会自动创建一个对应的唯一索引。

2)在表上定义了一个外键时,会自动创建一个普通索引。

三、EXPLAIN

3.1、关于EXPLAIN

作用:用来查看索引是否正在被使用,并且输出其使用的索引的信息。

3.2、EXPLAIN使用示例

MySQL学习笔记九:索引_MySQL

3.3、EXPLAIN输出信息

id:select查询的序列号,包含一组数字,表示查询中执行select子句或操作表的顺序。

select_type:所使用的SELECT查询类型。