一、什么是索引
- index
- 索引相当于一本数的目录,索引作用:提高程序的检索效率
二、主键自动添加索引
能通过主键查询,尽量用主键查询,效率高
三、索引与表关系
索引和表相同,都是一个对象,表是存在于硬盘文件中,那么索引是表的一部分,索引也是存储在硬盘中
四、MySQL中,对表中记录进行检索的几种方式
1、全表扫描(效率低)
2、通过索引进行检索(提高查询效率)
五、一张表中有多个字段,每个字段都是可以添加索引
六、什么情况下适合给表中添加索引
- 该表数据量庞大
- 该字段很少DML操作(DML很多的话,索引也是要不断的维护,效率反而低)
- 该字段经常出现在where条件中
七、如何创建索引
1、create index 索引名 on 表名(列名)
create unique index u_ename on emp(ename);
2、alter table 表名 add unique index 索引名 (列名);
八、查看索引
show index from emp;
九、使用索引
注意一定不可以用select * … 可以看到type!=all了,说明使用了索引
explain select sal from emp where sal > 1500;
十、删除索引
DROP INDEX index_name ON talbe_name
ALTER TABLE table_name DROP INDEX index_name
ALTER TABLE table_name DROP PRIMARY KEY
其中,前两条语句是等价的,删除掉table_name中的索引index_name。
第3条语句只在删除PRIMARY KEY索引时使用,因为一个表只可能有一个PRIMARY KEY索引,
mysql> ALTER TABLE EMP DROP INDEX test_index;
删除后就不再使用索引了,查询会执行全表扫描。