【发布时间】:2011-06-30 22:01:03
【问题描述】:
我有一个包含 4 列的表:名称、日期、版本和值。所有四个都有一个综合索引,按此顺序。它有 2000 万行:2.000 个名称,每个名称大约 1.000 个日期,每个日期大约 10 个版本。
我正在尝试获取一个列表,为所有名称提供最高日期、该日期的最高版本以及相关值。
当我这样做时
SELECT name,
MAX(date)
FROM table
GROUP BY name
我得到了很好的性能并且数据库使用了复合索引
但是,当我将表加入此表以获取每个名称的 MAX(version) 时,查询需要很长时间。必须有一种方法可以在与上面的 SELECT 语句大致相同的时间内获得结果吗?我可以通过使用索引轻松完成。
【问题讨论】:
-
你能不能给我们看看也这么慢的 JOIN 查询?
-
“M”表示百万?一些北美人不会意识到在其他国家/地区格式中,句点代替了逗号。
标签: mysql sql group-by aggregate-functions