创建表的时候创建索引:
CREATTABLE table_name [col_name date_type] [UNIQUE|FULLTEXT
SPATIAL] [INDEX|KEY] [index_name] (col_name [lenght]) [ASC|DESC]
UNIQUE、FULLTEXT和SPATIAL为可选参数,分别表示唯一索引、全文索引和空间索引;INDEX与KEY为同义词,两者作用相同,用来指定创建索引;col_name为需要创建索引的字段列,该列必须从数据表中该定义的多个列中选择;index_name指定索引的名称,为可选参数,如果不指定,MySQL默认col_name为索引值;lenght为可选参数,表示索引的长度,只用字符串类型的字段才能指定索引长度;ASC或DESC指定升序或者降序的索引值存储
创建普通索引:
show create table 查看表结构
使用EXPLAIN语句查看索引是否在使用:
创建唯一索引:使用unique关键字创建唯一索引
创建单列索引:
创建组合索引:组合索引是在多个字段上创建一个索引
在已经存在的表上创建索引
使用ALTER TABLE语句创建索引
ALTER TABLE table_name ADD [UNIQUE|FULLTEXT
SPATIAL] [INDEX|KEY] [index_name] (col_name [lenght]) [ASC|DESC]
在book表中的bookname字段上建立名为BkNameIdx的普通索引
ALTER TABLE book ADD INDEX BkNameIdx (bookname(30));
在book表的comment字段上建立单例索引
ALTER TABLE book ADD INDEX BkcmIdx (comment(50));
在book表的authors和info字段上建立组合索引
ALTER TABLE book ADD INDEX BkAuAnIdx (authors(20),info(50));
使用CREATE INDEX创建索引
CREATE INDEX语句可以在已经存在的表上添加索引
CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name ON table_name(col_name[legth],…) [ASC|DESC]
在book表的bookname字段上建立名为BkNameLdx的普通索引
CREATE INDEX BkNameIdx ON book(bookid);
在book表的comment字段上建立单例索引
CREATE INDEX BkcmIdx ON book (comment(50));
CREATE INDEX BkAuAnIdx ON book (authors(20),info(50));
删除索引:
使用 ALTER TABLE删除索引:ALTER TABLE table_name DROP INDEX index_name;
使用DROPINDEX语句删除索引
DROP INDEX index_name ON table_name;