因为经常要测试索引效果,又容易忘记语句,这里记录一下。

一、索引

索引一般可以分为三种:

  • 一般索引
  • 唯一索引
  • 主键

而这三种索引在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;