2012-07-26 107 views
0

根据输入数据库的时间检索数据的最佳方式是什么?基于时间的数据库中的队列数据(MYSQL)

例如,以下保存在DB

data 1 saved now 
data 2 saved now+1 
data 3 saved now+2 
data 4 saved now+3 
data 5 saved now+4 

那么什么是获取数据1,则数据2 3,像一个FIFO

和其他问题的最好办法是让我们说数据数据3次失败要那么什么是新的时间值,使之经过4和5前处理再次保存最好的方式处理,因此它会像这样,

data 4 saved 
data 3 saved 
data 5 saved 

我在想g直接的解决方案,它获取排序日期的行并尝试逐个处理它们,然后获取另一组行,但我认为这不足以满足需要选择整个表并对其进行排序处理它,我想象如果我有数百万行,那么这将是非常糟糕的。

是否有可能使用除DB以外的其他东西来做到这一点上述?请记住,我需要将数据保存在磁盘上以防服务器重新启动。

我工作的环境的Linux和C多线程/进程

回答

1

如果您不需要对数据执行复杂查询,则可以实现二次驱动器支持的FIFO队列。您甚至不需要存储时间戳,因为队列顺序意味着时间戳顺序。您可以将1000行的块保存在单独的文件中,并将最近的行保留在主内存中。在这种情况下,数据库可能不是必需的。

+0

我打算写一些关于在行上添加时间戳的信息,但是对于这个问题,我认为你是对的,队列就是要走的路。 – 2012-07-26 16:38:20