种类
-
单值索引:即一个索引只包含单个列。一个表可以有多个单列索引。
-
唯一索引:索引列的值必须唯一,但允许有空值。
-
复合索引:即一个索引包含多个列。
假如现在有一个people表,内有字段id(主键不需要做索引),name,age,phone_number(电话号码)那么:
- 单值索引:可以单独用name或age做一个索引,任何一个字段都可以。这样的索引可以做多个。
- 唯一索引:和单值索引一样,但做索引的该字段必须唯一,比如你确定people表中phone_number的值唯一的话,那么便可以在上面建立唯一索引。
- 复合索引:可以用(name,age)或(age,phone_number)或(name,age,phone_number)做一个索引。
建议:建复合索引,且一个表不要超过5个索引。
基本语法
-
创建(如果加上UNIQUE则创建唯一索引):
CREATE [UNIQUE] INDEX indexName ON mytable(columnname(length));
或ALTER mytable ADD [UNIQUE] INDEX[indexName] ON (columnname(length));
-
删除:
DROP INDEX [indexName] ON mytable;
-
查看:
SHOW INDEX FROM table\G