Mysql 通过多次查询从数据库获取最新记录

Mysql 通过多次查询从数据库获取最新记录,mysql,performance,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() - IN

我有一个包含车辆记录的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秒的结果需要太长时间

这有用吗

select distinct a.id from yourtable AS a
where a.ts > NOW() - INTERVAL 5 MINUTE;
它提供过去4/5分钟内更新的所有车辆

谢谢,
Rakesh

我很困惑——如果更新了一条记录,为什么表中会包含多条记录,而不仅仅是一条记录?此外,查看表的创建表定义和一些示例数据也会很有用,有助于回答问题。实际上,表不会更新,但会像车辆位置日志一样插入新记录