从数据库获取最新记录多个查询

时间:2011-09-17 17:04:23

标签: mysql performance

我有一个带车辆记录的mysql数据库。我需要一个快速查询,它将返回最近4分钟内更新的那些记录的最新记录。例如,车辆“A”可以每分钟更新几次,因此它将在最后4分钟内出现多次。与车辆B C等相同。我只需要在4分钟的窗口内为每辆车提供最新的条目。我试过这样的

SELECT *
FROM yourtable AS a
WHERE a.ts = 
    (SELECT MAX(ts)
     FROM yourtable AS b
     WHERE b.ts > NOW() - INTERVAL 5 MINUTE
       AND b.name = a.name)

但是生成结果需要很长时间> 10秒。

1 个答案:

答案 0 :(得分:0)

这有用吗?

select distinct a.id from yourtable AS a
where a.ts > NOW() - INTERVAL 5 MINUTE;

它为所有在过去4/5分钟内更新的车辆提供。

谢谢, 勒凯什