在A上建个索引,B上已经有索引了,那么 select * from table where a='a1' and b between t1 and t2 union all select * from table where a='a2' and b between t1 and t2 union all select * from table where a='a3' and b between t1 and t2这样每个小查询都能够用到索引搜索,效率会有所提高。
我的查询语句是这样写的,请各位大虾看看,应该怎么修改select tmp.* from ( select * from Table force index(index_T) where T between t1 and t2 ) as tmp where tmp.A in(a1,a2,a3);
select * from table where a='a1' and b between t1 and t2
union all
select * from table where a='a2' and b between t1 and t2
union all
select * from table where a='a3' and b between t1 and t2这样每个小查询都能够用到索引搜索,效率会有所提高。
from
(
select *
from Table force index(index_T)
where T between t1 and t2
) as tmp
where tmp.A in(a1,a2,a3);