索引的操作 |
以下情况下适合创建索引: 1.经常被查询的字段,即在WHERE子句中出现的字段; 2.在分组的字段,即在GROUP BY 子句中出现的字段; 3.存在依赖关系的子表和父表之间的联合查询,即主键和外键字段; 4.设置唯一完整性约束的字段; 以下情况下,不适合创建索引: 1.在查询中很少被使用的字段。 2.拥有许多重复值的字段。 创建索引 CREATE TABLE tdept ( deptno INT, dname VARCHAR(20), loc VARCHAR(40), INDEX indexdeptno(deptno) ); ASC 升序排序,DESC 降序排序 添加普通索引 ALTER TABLE tablename ADD INEX|KEY 索引名(属性名 【(长度)】 【ASC|DESC】) ALTER TABLE tdept ADD INDEX indexdeptno(deptno); 创建唯一索引 ALTER TABLE tablename ADD UNIQUE INDEX|KEY 索引名 (属性名 【(长度)】【ASC|DESC】) ALTER TABLE tdept ADD UNIQUE INDEX indexdeptno(deptno); 创建全文索引 CREATE TABLE tdept ( deptno INT, dname VARCHAR(20), loc VARCHAR(20), FULLTEXT INDEX indexloc(loc) ) engine=MyISAM; 在已经存在的表上创建全文索引 CREATE FULLTEXT INDEX 索引名 ON 表名(属性名 【(长度)】 【ASC|DESC】) CREATE FULLTEXT INDEX indexlc ON tdept(loc); ALTER TABLE tdept ADD FULLTEXT INDEX indexloc(loc); 创建表时创建多列索引 CREATE TABLE tdept ( deptno INT, dname VARCHAR(20), loc VARCHAR(40), KEY indexnameloc( dname, loc) ); 在已经存在的表上创建多列索引 CREATE INDEX indexnameloc ON tdept (dname, loc); ALTER TABLE tdept ADD INDEX indexnameloc(dname, loc); 删除索引 DROP INDEX indexname ON tablename DROP INDEX indexnameloc ON tdept; |