索引: 它是对数据库表中的一列或多列的值进行排序后的一种结构,作用是提高表中数据的查询速度。虽然索引可以提高数据的查询速度,但会占用一定的磁盘空间,也会消耗时间。

○ 普通索引

可以创建在任何数据类型中,其值是否唯一和非空没有固定要求。

○ 唯一性索引

唯一性索引是由UINQUE定义的,该索引所在的字段的值必须是唯一的。

○ 全文索引

全文索引由FULLTEXT定义的,它只能创建在CHAR、VARCHAR或TEXT类型的字段上。

○ 单列索引

单列索引指的是在表中单个字段上创建索引。

○ 多列索引

多列索引指的是在表中多个字段上创建索引,只有在查询条件中使用了这些字段中的第一个字段时,该索引才会被使用。

○ 空间索引

空间索引是由SPATIAL定义的索引,它只能创建在空间数据类型的字段上

(GEOMETRY、POINT、LINESTRING、POLYGON)

 

1.创建索引

○ 创建表的时候创建索引

CREATE TABLE 表名(字段名 数据类型(完整性约束条件),

字段名 数据类型(完整性约束条件),

. . .

UNIQUE/FULLTEXT/SPATIAL  INDEX/KEY  索引名 字段名 ASC/DESC);

普通索引 不写默认普通索引

DISTINCT 多列 索引 多列唯一索引_字段

唯一性索引

DISTINCT 多列 索引 多列唯一索引_字段_02

全文索引

DISTINCT 多列 索引 多列唯一索引_多列_03

单列索引

DISTINCT 多列 索引 多列唯一索引_表名_04

多列索引

DISTINCT 多列 索引 多列唯一索引_字段_05

 

DISTINCT 多列 索引 多列唯一索引_DISTINCT 多列 索引_06

 

DISTINCT 多列 索引 多列唯一索引_多列_07

空间索引

DISTINCT 多列 索引 多列唯一索引_表名_08

 

○ 使用CREATE INDEX 语句在已经存在的表上创建索引

CREATE  UNIQUE/FULLTEXT/SPATIAL  INDEX 索引名 ON 表名 字段名(长度) ASC/DESC

普通索引

DISTINCT 多列 索引 多列唯一索引_DISTINCT 多列 索引_09

唯一索引

单列索引

多列索引

全文索引

空间索引

 

○ 使用ALTER TABLE 语句在已经存在的表上创建索引

ALTER TABLE 表名 ADD UNIQUE/FULLTEXT/SPATIAL INDEX 索引名 字段名(长度)ASC/DESC

DISTINCT 多列 索引 多列唯一索引_多列_10

 2.删除索引

○ ALTER TABLE 表名 DROP INDEX 索引名

 

DISTINCT 多列 索引 多列唯一索引_表名_11

 ○ DROP INDEX 索引名 ON 表名            DROP INDEX indexone ON book;