请告知如何改善这种缓慢的查询。缓慢查询与OR在哪里条款
SELECT response.`reasonid`
FROM response
INNER JOIN ACTION ON action.actionid = response.actionid
WHERE
response.respdate BETWEEN 20160305
AND 20160905
AND
(
(
response.reasonid = 'Prospect Call'
AND response.typeid = '0'
AND action.typeid = '9'
)
OR
(
response.typeid = '1000'
AND action.typeid = '1'
)
)
上有索引:
response.actionid/response.reasonid/response.typeid/action.typeid/response.respdate
解释结果:
table type possible_keys key key_len ref rows Extra
ACTION range PRIMARY,idx_actiontypeid idx_actiontypeid 5 \N 310617 Using where; Using index
response ref idx_respdate2,idx_actionid, idx_actionid 5 ACTION.actionid 1 Using where
idx_reasonid,idx_resptypeid
什么数据类型是respdate?它是一个日期,日期时间,整数? “慢”是什么意思? 1秒? 1分钟? – Olli
respdate是一个日期字段。慢6秒。 – zima10101