MySQL索引的查看、创建和删除
因为经常要测试索引效果,又容易忘记语句,这里记录一下。
一、索引
索引一般可以分为三种:
- 一般索引
- 唯一索引
- 主键
而这三种索引在MySQL中都支持多列索引,即
- 多列一般索引
- 多列唯一索引
- 多列主键
二、查看索引
SHOW INDEX FROM table_name;
注意:这里并不是只显示一般索引,而是显示此表中的所有索引
三、创建索引
创建一般索引:
ALTER TABLE table_name ADD INDEX index_name (column_name);
如:
ALTER TABLE people ADD INDEX name_index (name);
创建多列一般索引:
ALTER TABLE table_name ADD INDEX index_name (column_list);
如:
ALTER TABLE people ADD INDEX name_age_index (name,age);
注意:一般索引必须指定索引名(但实际不怎么用到),唯一索引和主键不需要。
创建唯一索引:
ALTER TABLE table_name ADD UNIQUE (column_name);
如:
ALTER TABLE people ADD UNIQUE (id);
创建多列唯一索引:
ALTER TABLE table_name ADD UNIQUE (column_list);
如:
ALTER TABLE people ADD UNIQUE (name,age);
创建主键:
ALTER TABLE table_name ADD PRIMARY KEY (column_name);
如:
ALTER TABLE people ADD PRIMARY KEY (id);
创建多列主键:
ALTER TABLE table_name ADD PRIMARY KEY (column_list);
如:
ALTER TABLE people ADD PRIMARY KEY (name,age);
四、删除索引
删除一般索引:
ALTER TABLE table_name DROP INDEX index_name;
如:
ALTER TABLE people DROP INDEX name_index;
删除唯一索引:
ALTER TABLE table_name DROP UNIQUE;
如:
ALTER TABLE people DROP UNIQUE;
注意:区别于一般索引和主键,这样会删除第一个唯一索引。
删除主键:
ALTER TABLE table_name DROP PRIMARY KEY;
如:
ALTER TABLE people DROP PRIMARY KEY;