一、索引的目的
索引的目的在于提高查询效率,可以类比字典,如果要查“mysql”这个单词,我们肯定需要定位到m字母,然后从上往下找到y字母,再找到剩下的sql。如果没有索引,那么你可能需要把所有单词看一遍才能找到你想要的。
二、MySQL索引语法相关
-
创建索引
-- MySQL创建索引的2种方式
-- 1) CREATE INDEX -- CREATE INDEX可对数据表增加普通索引或UNIQUE索引。
-- 1.1 单值索引:
CREATE INDEX index_name ON table_name(`column_name`);
-- 或者
CREATE UNIQUE INDEX index_name ON table_name(`column_name`);
-- 1.2 复合(联合)索引:
CREATE INDEX index_name ON table_name(column_list);
-- 2) ALTER TABLE -- ALTER TABLE可用于创建普通索引、UNIQUE索引或PRIMARY KEY主键索引。
-- 额外补充一点:add index 等效于 add key
-- 2.1 单值索引:
ALTER TABLE table_name ADD INDEX index_name(`column_name`);
ALTER TABLE table_name ADD UNIQUE(`column_name`);
ALTER TABLE table_name ADD PRIMARY KEY(`column_name`);
-- 2.2 复合(联合)索引:
ALTER TABLE table_name ADD INDEX index_name(column_list);
-
查看索引
-- 查看MySQL索引的2种方式
1) show index from table_name;
纵向查看:show index from table_name\G;
2) show keys from table_name;
纵向查看:show keys from table_name\G;
-
删除索引
-- MySQL删除索引的3种用法
1) DROP INDEX index_name ON table_name;
-- DROP KEY index_name on table_name; 行不通,报错!
2) ALTER TABLE table_name DROP INDEX index_name;
-- 或
ALTER TABLE table_name DROP KEY index_name;
3) ALTER TABLE table_name DROP PRIMARY KEY;