0

DB に入った時間に基づいてデータを取得する最善の方法は何ですか?

たとえば、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

次に、FIFO のように、データ 1、データ 2、3 を取得する最良の方法は何ですか?

もう 1 つの質問は、データ data 3 の処理に失敗した場合、新しい時間値で再度保存して 4 の後と 5 の前に処理されるようにするための最良の方法は何か、ということです。

data 4 saved 
data 3 saved 
data 5 saved

日付を並べ替えて行を取得し、それらを1つずつ処理してから別の行のセットを取得するという簡単な解決策を考えていましたが、テーブル全体を選択して並べ替える必要があるため、それだけでは十分ではないと思いますそれを処理します。何百万もの行があるとしたら、それは本当に悪いことです。

また、DB 以外のものを使用して上記のことを行うことは可能ですか? サーバーが再起動した場合に備えて、データをディスクに保存する必要があることに注意してください。

私が取り組んでいる環境は、複数のスレッド/プロセスを持つ Linux と C です

4

1 に答える 1

1

データに対して複雑なクエリを実行する必要がない場合は、セカンダリ ドライブに基づく fifo キューを実装できます。キューの順序はタイムスタンプの順序を意味するため、タイムスタンプを保存する必要さえありません。たとえば 1000 行のチャンクを別々のファイルに保持し、最も古い行をメイン メモリに保持できます。このシナリオでは、データベースは必要ない場合があります。

于 2012-07-26T16:36:39.363 に答える