根据数据进入数据库的时间检索数据的最佳方法是什么?
例如,以下内容保存在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之前处理,所以它会是这样,< / p>
data 4 saved
data 3 saved
data 5 saved
我正在思考直接解决方案,即获取排序日期的行并尝试逐个处理它们然后获取另一组行,但我认为这不够,因为我需要选择整个表然后对它进行排序然后处理它,我想想如果我有数百万行那么那将是非常糟糕的。
是否可以使用除DB之外的其他东西来执行上述操作?请记住,如果服务器重新启动,我需要将数据保存在磁盘上。
我正在研究的环境是具有多个线程/进程的Linux和C
答案 0 :(得分:1)
如果您不需要对数据执行复杂查询,则可以实现辅助驱动器支持的fifo队列。您甚至不需要存储时间戳,因为队列顺序意味着时间戳顺序。您可以在单独的文件中保留1000行的块,并将最近的行保留在主内存中。在这种情况下,可能不需要数据库。