创建联合索引
ALTER TABLE `aaa` ADD INDEX index_name ( `id`, `flowId`)
explain执行后查看详情
explain select * from aaa where id=1
explain select * from aaa where id=1 and flowId ='11111113a466442abbce094c9368ac7c'
explain select * from aaa where flowId ='11111113a466442abbce094c9368ac7c'
explain select flowId from aaa where flowId ='11111113a466442abbce094c9368ac7c'
explain select * from aaa where flowId ='11111113a466442abbce094c9368ac7c'and id=1
对应结果图
## 总结
MySQL中组合索引(a,b)命中生效的情况如下:
分为select *的情况
a,b 走索引
b,a 走索引
a 走索引
b 不走索引
走index类型索引:
如果单个字段为复合索引的首个字段,则会正常走索引;如果单个字段是复合索引的其他字段,且仅有该字段出现在select后面,则会走index类型索引
例如
explain select flowId from aaa where flowId ='11111113a466442abbce094c9368ac7c'