SELECT * FROM order_exp WHERE order_no= ‘a’ And expire_time= ‘z’;
这个查询之所以可能使用 Intersection 索引合并的方式执行,还不是因为 idx_order_no 和 idx_expire_time 是两个单独的 B+树索引,要是把这两个列搞一个联合索引,那直接使用这个联合索引就把事情搞定了,何必用啥索引合并呢,就
像这样:
ALTER TABLE order_exp drop index idx_order_no, idx_expire_time,
add index idx_order_no_expire_time(order_no, expire_time);
这样我们把 idx_order_no, idx_expire_time 都干掉,再添加一个联合索引idx_order_no_expire_time,使用这个联合索引进行查询简直是又快又好,既不用多读一棵 B+树,也不用合并结果。