我正在尝试
SELECT id, max(event_date) dt
FROM worker
LEFT JOIN events ON id = attendee
WHERE worker.type='CON'
GROUP BY id;
但查询需要太长时间。有没有办法让这更快?
worker
和events
有点大(10,000条记录)表加入了一对多。 (大多数工作者有0个相关事件,但有些事件最多有10个左右。)但我不认为这个事件太大而查询失败了。想法?
答案 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;
(我必须假设每个字段与哪些表相关联。)