我有一个数据库表,每秒都在更新。我想写一个查询,提取最近的20,000条记录(大约6个小时,因为它每秒收集一次)。
我想尝试一下:
SELECT time_stamp, column2, column3
FROM myDB.table1
limit 20000;
但是上面的查询从数据插入表格的最开始就提取项目。我想要最近的20000条记录。
将拉入插入表格的最新记录的查询是什么?
答案 0 :(得分:2)
正确的查询是:
SELECT time_stamp, column2, column3
FROM myDB.table1
ORDER BY time_stamp DESC
LIMIT 20000;
但是,您可能会发现查询很昂贵。如果您在time_stamp
上有索引,则可能会发现效率更高:
SELECT time_stamp, column2, column3
FROM myDB.table1
WHERE time_stamp >= date_sub(now(), interval 6 hours);
它不是20,000条记录,但它是最新的记录,它应该比排序所有数据更快。
您可以通过执行以下操作来创建此类索引:
create index idx_table1_timestamp on table1(time_stamp);