select count(*) from b_tokerclue tc WHERE CASE '6'
WHEN '0' THEN
1=1
WHEN '1' THEN
tc.CreateTime > '2018-01-01'
WHEN '2' THEN
tc.CreateTime < '2018-01-10'
WHEN '3' THEN
tc.TheFirstVisitDate>'2018-01-01'
WHEN '4' THEN
tc.TheFirstVisitDate<'2018-01-10'
WHEN '5' THEN
1>2
WHEN '6' THEN
tc.CreateTime>'2018-01-01' and tc.CreateTime<'2018-01-10'
WHEN '7' THEN
tc.TheFirstVisitDate>'2018-01-01' and tc.TheFirstVisitDate<'2018-01-10'
ELSE
1=1
END;
其中CreateTime已经建立了索引,但是查看执行计划为全盘扫码,请问这种情况怎么解决。谢谢各位大神了
建一个既包含 CreateTime 又包含 TheFirstVisitDate 的索引
你where这么长.我都替分析器着急..
这个还不算长的呢,有没有见过300多行的
@魂心: 原因应该是条件有多个.他不知道是可以走索引的.可以试下强制用一个索引.
但那样你其他情况一样没索引的.
possible_keys可用索引没有 , 请确定是否正确建立索引
SELECT COUNT(*) FROM x_user u WHERE u.createtime <'2017-12-30' AND u.createtime > '2016-01-01'
select_type | table | type | possible_keys | key | key_len | ref | rows | Extra
SIMPLE | u | range | index_createtime | index_createtime | 5 | null | 9551 | Using where; Using index