为什么这会使服务器超时?

时间:2012-01-13 20:49:13

标签: mysql sql query-optimization

我正在尝试

SELECT id, max(event_date) dt
FROM worker
LEFT JOIN events ON id = attendee
WHERE worker.type='CON'
GROUP BY id;

但查询需要太长时间。有没有办法让这更快?

workerevents有点大(10,000条记录)表加入了一对多。 (大多数工作者有0个相关事件,但有些事件最多有10个左右。)但我不认为这个事件太大而查询失败了。想法?

2 个答案:

答案 0 :(得分:0)

发布确切的表格模式可以进行更好的分析。

我猜测与会者和类型没有编入索引。

尝试使用“explain”(请参阅​​http://dev.mysql.com/doc/refman/5.1/en/explain-output.html)为查询添加前缀,以获取有关执行计划的详细信息。

答案 1 :(得分:0)

没有架构,这就是一个猜测。但events表格是否同时包含id字段和attendee字段?

在您的查询帮助中更明确吗?

SELECT worker.id, max(events.event_date) dt
FROM worker
LEFT JOIN events ON worker.id = events.attendee
WHERE worker.type='CON'
GROUP BY worker.id;

(我必须假设每个字段与哪些表相关联。)

相关问题