【发布时间】:2013-03-29 01:40:10
【问题描述】:
所以我在这里有一个基本查询,可以在日期范围之间进行选择。似乎需要(相对较长的时间来处理)我想知道我可以做些什么来改善处理时间。这是查询。
SELECT h.id as hid,h.created_on,u.id as uid,u.fname,u.lname,u.email
FROM hud h
LEFT JOIN user_hud uh on h.id = uh.hid
LEFT JOIN users u on u.id = uh.uid
WHERE
h.created_on
BETWEEN DATE_SUB( CURDATE( ) ,INTERVAL 12 MONTH )
AND DATE_SUB( CURDATE( ) ,INTERVAL 7 DAY)
【问题讨论】:
-
允许中断查询。
-
你必须做索引。处理时间与您的系统无关。
-
hud.id、user_hud.hid、users.id、user_hud.uid和hud.created_on列上是否有索引?发布查询的EXPLAIN(dev.mysql.com/doc/refman/5.5/en/explain.html)。返回多少行,处理时间是多少? -
@NathanBouscal 怎么样? where 与连接无关。
-
@NathanBouscal 不正确,查询优化器几乎总是足够聪明,可以自己解决这个问题。没有解释,这只是猜测。
标签: mysql