概述
- 索引在MySQL中也叫做"键",保存着数据位置的信息
- 其作用是为了加快数据库的查询速度
- 实际上,索引也是一张表,该表保存了主键与索引字段,并指向实体表的记录。
索引的使用
添加索引
alter table 表名 add index 索引名(字段名); #案例alter table classes add index my_name(name); #给classes表中的name列添加名为my_name的索引
主键会自动创建索引,外键约束也会自动创建索引
删除索引
drop index 索引名 on 表名; #案例drop index my_name on classes; #删除classes表中的my_name索引
添加联合索引
语法
联合索引又叫复合索引,是MySQL的InnoDB引擎中的一个索引方式,如果一个系统频繁地使用相同的几个字段查询结果,就可以考虑建立这几个字段的联合索引来提高查询效率。
alter table 表名 add index 索引名(字段名1,字段名2);
最左前缀原则
在使用联合索引时要注意有个最左前缀原则,最左前缀原则就是要考虑查询的字段的顺序,只有遵守这个原则才能最大地提高查询的效率。
比如index(name,age)支持name或者name,age组合查询,不支持age单独查询
select * from students where name ='张三'; #使用了联合索引select * from students where name ='张三' and age =10; #使用了联合索引select * from students where age =10; #没有使用联合索引