1、为什么要使用联合索引?
MySQL优化器使得一条查询语句只使用一个限制最严格的索引,只用一个索引的基础上,联合索引要比单例索引快。
2、联合索引命中条件?
假设 table 表设置了 A_B 这样的联合索引
可命中的条件:
1、使用联合索引的全部索引;
SELECT * FROM table WHERE A = 1 AND B = 1;(A和B无所谓在AND前还是后)
2、使用联合索引的前缀索引部分。
SELECT * FROM table WHERE A = 1;
不可命中的条件:
1、使用的部分索引键不是联合索引的前缀部分;
SELECT * FROM table WHERE B = 1;
2、使用联合索引的全部索引,但索引键不是AND操作。
SELECT * FROM table WHERE A = 1 OR B = 1;