Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql SQL选择以获取最近添加的条目?_Mysql_Sql - Fatal编程技术网

Mysql SQL选择以获取最近添加的条目?

Mysql SQL选择以获取最近添加的条目?,mysql,sql,Mysql,Sql,我有一个每秒钟更新一次的数据库表。我想写一个查询,提取最近的20000条记录(大约6个小时,因为每秒收集一次) 我想试试: SELECT time_stamp, column2, column3 FROM myDB.table1 limit 20000; 但是上面的查询从数据插入表的一开始就提取这些项。我想要最近的20000张唱片 提取插入表中的最新记录的查询是什么?正确的查询是: SELECT time_stamp, column2, column3 FROM myDB.table1 O

我有一个每秒钟更新一次的数据库表。我想写一个查询,提取最近的20000条记录(大约6个小时,因为每秒收集一次)

我想试试:

SELECT time_stamp, column2, column3 
FROM myDB.table1 
limit 20000;
但是上面的查询从数据插入表的一开始就提取这些项。我想要最近的20000张唱片

提取插入表中的最新记录的查询是什么?

正确的查询是:

SELECT time_stamp, column2, column3
FROM myDB.table1
ORDER BY time_stamp DESC
LIMIT 20000;
但是,您可能会发现查询的开销很大。如果您在
时间戳
上有索引,您可能会发现这更有效:

SELECT time_stamp, column2, column3
FROM myDB.table1
WHERE time_stamp >= date_sub(now(), interval 6 hours);
它不完全是20000条记录,但它是最新的记录,应该比排序所有数据更快

您可以通过以下操作创建这样的索引:

create index idx_table1_timestamp on table1(time_stamp);
正确的查询是:

SELECT time_stamp, column2, column3
FROM myDB.table1
ORDER BY time_stamp DESC
LIMIT 20000;
但是,您可能会发现查询的开销很大。如果您在
时间戳
上有索引,您可能会发现这更有效:

SELECT time_stamp, column2, column3
FROM myDB.table1
WHERE time_stamp >= date_sub(now(), interval 6 hours);
它不完全是20000条记录,但它是最新的记录,应该比排序所有数据更快

您可以通过以下操作创建这样的索引:

create index idx_table1_timestamp on table1(time_stamp);

谢谢我要试一试。我将查看查询需要多长时间,如果需要查看
时间戳
索引,那么我将尝试一下。我试图将其设置为一个循环查询,因此我不太确定如何调整每天的日期。当使用我的Raspberry Pi作为MySQL客户端时,这两个查询似乎都需要一些时间来执行。是否有其他方法可以加快此返回记录的速度?您是否有关于时间戳的索引?对不起,我不太清楚您的问题是什么意思。所以我猜我没有。如何在时间戳上创建索引?谢谢谢谢你的编辑。我的表每秒钟都被写入一次,所以我想知道我是否像你提到的那样创建了索引,它是否会以任何方式对我的表产生负面影响?谢谢!我要试一试。我将查看查询需要多长时间,如果需要查看
时间戳
索引,那么我将尝试一下。我试图将其设置为一个循环查询,因此我不太确定如何调整每天的日期。当使用我的Raspberry Pi作为MySQL客户端时,这两个查询似乎都需要一些时间来执行。是否有其他方法可以加快此返回记录的速度?您是否有关于时间戳的索引?对不起,我不太清楚您的问题是什么意思。所以我猜我没有。如何在时间戳上创建索引?谢谢谢谢你的编辑。我的表每秒钟都被写入一次,所以我想知道我是否像你提到的那样创建了索引,它是否会以任何方式对我的表产生负面影响?