0

根据进入数据库的时间检索数据的最佳方法是什么?

例如,以下保存在数据库中

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

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

是否可以使用 DB 以外的其他东西来完成上述操作?请记住,我需要将数据保存在磁盘上,以防服务器重新启动。

我正在使用的环境是具有多个线程/进程的 Linux 和 C

4

1 回答 1

1

如果您不需要对数据执行复杂的查询,那么您可以实现由辅助驱动器支持的 fifo 队列。您甚至不需要存储时间戳,因为队列顺序意味着时间戳顺序。您可以将大块(例如 1000 行)保存在单独的文件中,并将最近的行保存在主内存中。在这种情况下,可能不需要数据库。

于 2012-07-26T16:36:39.363 回答