MySQL索引类型及创建方式的总结
1、MySQL索引类型包括:普通索引、唯一索引、全文索引、单列索引、多列索引和空间索引。
2、索引的创建有利有弊,创建索引可以提高查询速度,但过多的创建索引则会占据许多的磁盘空间。
3、MySQL通过三种方式来创建索引,分别为创建表时创建索引、在已经存在的表上创建索引和通过SQL语句ALTER TABLE创建索引。
4、不同索引类型的不同创建方式总结如下表所示:
MySQL索引类型 |
创建索引的方式及语法 | ||
创建表时创建索引 |
在已经存在的表上创建索引 |
SQL语句ALTER TABLE创建索引 | |
普通索引 |
CREATE TABLE table_name ( 属性名 数据类型, …… 属性名 数据类型, INDEX | KEY 索引名 (属性名 [长度] [ASC|DESC] )); |
CREATE INDEX 索引名 ON 表名 (属性名 [长度] [ASC|DESC]); |
ALTER TABLE table_name ADD INDEX | KEY 索引名 (属性名 [长度] [ ASC|DESC]); |
唯一索引 |
CREATE TABLE table_name ( 属性名 数据类型, …… 属性名 数据类型, UNIQUE INDEX | KEY 索引名 (属性名 [长度] [ASC|DESC] )); |
CREATE UNIQUE INDEX 索引名 ON 表名 (属性名 [长度] [ASC|DESC]); |
ALTER TABLE table_name ADD UNIQUE INDEX | KEY 索引名 (属性名 [长度] [ ASC|DESC]); |
全文索引 |
CREATE TABLE table_name ( 属性名 数据类型, …… 属性名 数据类型, FULLTEXT INDEX | KEY 索引名 (属性名 [长度] [ASC|DESC] )); |
CREATE FULLTEXT INDEX 索引名ON 表名 (属性名 [长度] [ASC|DESC]); |
ALTER TABLE table_name ADD FULLTEXT INDEX | KEY 索引名 (属性名 [长度] [ ASC|DESC]); |
多列索引 |
CREATE TABLE table_name ( 属性名 数据类型, …… 属性名 数据类型, INDEX | KEY 索引名 (属性名1 [长度] [ASC|DESC], …… 属性名n [长度] [ASC|DESC] )); |
CREATE INDEX 索引名 ON 表名 ( 属性名1 [长度] [ASC|DESC], …… 属性名n [长度] [ASC|DESC] ); |
ALTER TABLE table_name ADD INDEX | KEY 索引名 ( 属性名1 [长度] [ ASC|DESC], …… 属性名n [长度] [ASC|DESC] ); |
5、查询索引的方式:SHOW CREATE TABLE table_name
6、删除索引的语法形式:DROP INDEX index_name ON table_name