--联合索引查询第一个、第二个参数(走索引)
explain select* from emp where ENAME = 'wang' and JOB
单例索引:在数据库的单例上建立的索引。
联合索引:在数据库的多列上建立的索引。
两者使用区别:
如果在一个大量的数据库表中的需要进行查询的话,仅仅只是针对某一个条件进行查询的话,建立单例索引就能满足;
如果每次查询总是多个条件进行and连接 查询的时候,可以建立联合索引,多列单索引查询只会第一个起作用(mysql遵从最左原则);但是需要注意where后面的查询条件的顺序,例如建立的联合索引为 字段a,字段b,字段c;则查询where后面的条件必须包括字段a,一般的情况下都会按照联合索引的顺序填写where查询条件,节省mysql的自动调整的开销
如果条件是进行 or连接 查询的时候,此时联合索引会失效,这个时候就可以使用多个单列索引,此时是多个索引合并Using union(comm,deptNo); Using where,但是这种情况下索引也要酌情建立,索引太多不利于维护
以下示例:验证
-- 建立了单例索引COMM、DEPTNO;复合索引ENAME,JOB,SAL