0

我这里有一张表,里面有数百万个条目。该表存储事件,每个事件都有一个时间戳。给定一些 WHERE 子句参数,我想要最近的事件。

这是我们想出的:

SELECT * 
FROM eventTable 
WHERE timestamp_date >= '2012-07-16' AND 
      eventType = 1  AND someOtherField = 'value' 
ORDER BY timestamp DESC 
LIMIT 1;

目前,这需要很长时间才能返回。有没有办法改变 SQL 以更快地给我我们想要的东西?此外,是否有针对此类事情的预测策略?

谢谢何塞

4

1 回答 1

1

本质上,您希望根据 order by 子句中的时间戳列优化您的至少一个预测。如果你正确地进行预测,这应该很快。

编辑:只是一个澄清说明。我并不是要暗示时间戳列应该是 order by 子句中的唯一字段。此外,正如下面的评论中所提到的,在这种情况下,在数据库设计器上运行特定于查询并不是一件坏事。我相信有一个选项可以优化速度。由于您正在执行“选择 *”,因此输出可能应该作为超级和伙伴投影。

于 2012-09-21T20:32:26.867 回答