索引的分类
1、 普通索引
在创建普通索引时,不附加任何限制条件。这类索引可以创建在任何数据类型上,其值是否唯一和非空有字段本身的完整性约束条件决定。建立索引以后,查询时可以通过索引进行查询。
2、 唯一索引
使用UNIQUE参数可以设置索引为唯一索引。在创建唯一索引时,限制该索引的值必须是唯一的。用过唯一性索引,可以更快速的确定某条记录。主键就是一种特殊唯一性索引。
3、 全文索引
使用FULLTEXT参数可以设置索引为全文索引。全文索引只能创建在CHAR、VARCHAR或TEXT类型的字段上。查询数据量较大的字符串类型字段时,使用全文索引可以提高查询速度。
4、 单列索引
在表的单个字段上创建索引单列索引值根据该字段进行索引。单列索引可以是普通索引,也可以是唯一索引,还可以是全文索引。只要保证该索引只对应一个字段即可。
5、 多列索引
多列索引是在表的多个字段上建立一个索引。该索引指向创建是对应的多个字段,可以通过这几个字段进行查询。但是,只有查询条件中使用了这些字段中的第一个时,索引才会被使用。例如,在表中的id,name和sex字段上创建一个多列索引,那么,只有查询条件使用了id字段时该索引才会被使用。
6、 空间索引
创建索引
1、 创建表的时候创建索引
创建表的时候可以直接创建索引,这种方式最简单、方便。其基本形式如下:
CREATE TABLE 表名(属性名 数据类型[完整性约束条件],
属性名数据类型[完整性约束条件],
…
(不同索引类型前缀)INDEX 索引名(属性名));
例如:普通索引:INDEX(属性名);
唯一索引:UNIQUE INDEX 索引名(属性名);
2、 在已经存在的表上创建索引
在已经存在的表上,可以直接为表上的一个或几个字段创建索引。基本形式如下:
CREATE [UNIQUE|FULLTEXT|SPATIAL]INDEX 索引名
ON 表名(属性名[(长度)][ASC|DESC]);
3、 使用ALTER TABLE语句来创建索引
在已经存在的表上,可以通过ALTER TABLE语句直接为表上的一个或几个字段创建索引。基本形式如下:
ALTER TABLE 表名 ADD [UNIQUE|FULLTEXT|SPATIAL] INDEX
索引名 (属性名[(长度)][ASC|DESC]);
删除索引
对应已经存在的索引,可以通过DROP语句来删除索引。基本形式如下:
DROP INDEX 索引名 ON 表名;