MySQL5.0之前:无法同时使用多个索引分别进行条件扫描。MySQL5.1开始,引入了 index merge 优化技术,可以同一个表可以使用多个索引分别进行条件扫描。索引合并(Index merge)的策略:可以使用表上多个单列索引来定位指定的行。
索引合并(Index merge)的方式分:union, intersection,组合前两种情况的合并及相交。
union:or语句求并集,例:,在表table1字段field1和field2上建有索引,优化select * from table1 where field1 = "xxx" or field2= "xxx",我们可以用union操作:select * from table1 where field1 = "xxx" union select * from table1 where field2= "xxx"
intersect:and语句求交集,例:,在表table1字段field1和field2上建有索引,优化select * from table1 where field1 = "xxx" intersect select * from table1 where field2= "xxx"。