MySQL:Select语句并有选择地检索数据

MySQL:Select语句并有选择地检索数据,mysql,select,timestamp,Mysql,Select,Timestamp,我在MySQL中有一个很大的数据集,我想在读取数据时加快select语句的速度。假设有1000条记录,我想发出一个select语句来检索其中的一半,例如,但基于时间戳 使用这样的东西是行不通的,而id与时间戳并没有紧密耦合 select * from table where table.id mod 5 = 0; 检索所有数据并随后选择所需的数据不是一个解决方案,因为我希望避免检索大型数据集。因此,我正在寻找能够在选择时区分记录的东西 Thnx如果你需要速度,那么试试这个 select * f

我在MySQL中有一个很大的数据集,我想在读取数据时加快select语句的速度。假设有1000条记录,我想发出一个select语句来检索其中的一半,例如,但基于时间戳

使用这样的东西是行不通的,而id与时间戳并没有紧密耦合

select * from table where table.id mod 5 = 0;
检索所有数据并随后选择所需的数据不是一个解决方案,因为我希望避免检索大型数据集。因此,我正在寻找能够在选择时区分记录的东西


Thnx

如果你需要速度,那么试试这个

select * from table ORDER BY table.id DESC LIMIT 0,500;

select * from table ORDER BY table.id DESC LIMIT 500,500;

以此类推……

您需要在WHERE子句中添加索引,在获取所有数据记录时,使用LIMIT子句不会加快处理速度。计划是建立一种机制,选择这些样本的20%,以便快速查看,如果需要,用户将能够获得整个500条记录的详细视图。我举了一个限制的例子,因为你说你有大数据集。您可以使用PHP或您正在使用的任何其他编程语言动态地进行限制。首先从表中选择countid作为id\u计数,然后将id\u计数保持在一个可值状态。要获取20%的记录,可以执行$id\u count=$id\u count*0.2;然后创建查询select*from table ORDER BY table.id DESC LIMIT 0500;500应替换为$id\u计数值。此外,如果希望将总行数限制在最大值(比如100),则可以在准备查询$id\u count=min$id\u count,100之前编写以下代码;