2012-07-26 104 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