1.索引类型
- UNIQUE(唯一索引):不可以出现相同的值,可以有NULL值;
- INDEX(普通索引):允许出现相同的索引内容;
- PROMARY KEY(主键索引):不允许出现相同的值;
- fulltext index(全文索引):可以针对值中的某个单词,但效率确实不敢恭维;
- 组合索引:实质上是将多个字段建到一个索引里,列值的组合必须唯一;
2. 用 alter table 语句创建索引
应用于表创建完毕之后再添加;
- alter table 可用于创建普通索引、UNIQUE索引和PRIMARY KEY索引3种索引格式,
- table_name是要增加索引的表名,
- column_list指出对哪些列进行索引,多列时各列之间用逗号分隔。
- 索引名index_name可选,缺省时,MySQL将根据第一个索引列赋一个名称。
- 另外,ALTER TABLE允许在单个语句中更改多个表,因此可以同时创建多个索引。
ALTER TABLE 表名 ADD 索引类型 (unique,primary key,fulltext,index)[索引名](字段名);
-- 普通索引 alter table table_name add index index_name (column_list) ; -- 唯一索引 alter table table_name add unique (column_list) ; -- 主键索引 alter table table_name add primary key (column_list) ;
3.用 create index 语句创建索引
- CREATE INDEX可用于对表增加普通索引或UNIQUE索引,可用于建表时创建索引
- 如果是CHAR,VARCHAR类型,length可以小于字段实际长度;
- 如果是BLOB和TEXT类型,必须指定 length
CREATE INDEX index_name ON table_name(username(length));
-- create只能添加这两种索引; CREATE INDEX index_name ON table_name (column_list) CREATE UNIQUE INDEX index_name ON table_name (column_list)
4.删除索引
删除索引可以使用ALTER TABLE或DROP INDEX语句来实现;
drop index index_name on table_name ; alter table table_name drop index index_name ; alter table table_name drop primary key ;
参考文章: