一、索引分类
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使用示例
3.3、EXPLAIN输出信息
id:select查询的序列号,包含一组数字,表示查询中执行select子句或操作表的顺序。
select_type:所使用的SELECT查询类型。