索引由数据库表中一列或多列的值进行排序的一种结构。可以调高查询速率,提高检索数据的速度。 普通索引、唯一性索引UNIQUE、全文索引FULLTEXT、单列索引、多列索引、空间索引SPATIAL
索引设计原则: 选择唯一性索引、为经常需要排序分组和联合操作的字段建立索引、为常作为查询条件的字段建立索引、限制索引的数目、尽量使用数据量少的索引、尽量使用前缀来索引、删除不再使用或者很少使用的索引
一、创建索引
1、创建表的时候创建索引
CREATE TABLE 表名(属性名 数据类型[完整性约束条件],属性名 数据类型[完整性约束条件],.....)
普通索引:INDEX(属性名)
唯一性索引:UNIQUE INDEX索引名(属性名 索引方式)
全文索引:FULLTEXT INDEX 索引名(属性名) 只有MyISAM引擎才能用全文索引
单列索引:INDEX 索引名(属性名(索引长度))
多列索引:INDEX 索引名(属性名1,属性名2)查询时必须使用第一个字段查询,才能使用该索引。
空间索引:SPATIAL INDEX 索引名(属性名)引擎必须是MyISAM
2、在已经存在的表上创建索引
CREATE [UNIQUE/FULLTEXT/SPATIAL] INDEX 索引名ON 表名(属性名[(长度)][ASC/DESC]);
普通索引:CREATE INDEX 索引名 ON 表名(属性名);
唯一索引:CREATE UNIQUE INDEX 索引名 ON 表名(属性名); 全文索引:CREATE FULLTEXT 索引名 ON 表名(属性名);
单列索引:CREATE INDEX 索引名 ON 表名(属性名(索引长度));
多列索引:CREATE INDEX 索引名 ON 表名(属性名1,属性名2);
空间索引:CREATE SPATIAL INDEX 索引名 ON 表名(属性名);
3、使用ALTER TABLE语句来创建索引
ALTER TABLE 表名 ADD [UNIQUE/FULLTEXT/SPATIAL] INDEX 索引名(属性名[(长度)][ASC/DESC]);
三、删除索引
DROP INDEX 索引名 ON 表名;