生の形式(csvおよびバイナリ)でかなりの量のデータを蓄積しました-正確には数か月間、1日あたり4GBです。
私は文明世界に参加し、データベースを使用してデータにアクセスすることにしましたが、正しいレイアウトは何だろうと思いました。形式は非常に単純です: タイムティック (ビッド、アスク、タイムスタンプなど) ごとに数行 x 最大 50 万/日 x 数百の金融商品 x 数か月のデータ。
コモディティ ハードウェア (2 x 1GB RAID 0 SATA、コア 2 @ 2.7GHz) で動作する MYISAM (このタイプの使用に適したエンジンであると私は理解していました) を備えた MySQL サーバーがあります。
データベースの正しいレイアウトは何ですか? テーブル/インデックスはどのように見えるべきですか? このシナリオでの一般的な推奨事項は何ですか? 途中で私に落とし穴を設定するものは何だと思いますか?
編集:私の一般的な使用法は、特定の日付と楽器の時系列情報を抽出する単純なクエリです。
SELECT (ask + bid) / 2
WHERE instrument='GOOG'
AND date = '01-06-2008'
ORDER BY timeStamp;
編集: timeStamp によってインデックス付けされた 1 つのテーブルにすべてのデータを詰め込もうとしましたが、遅すぎました。したがって、より複雑なスキームが必要になると考えました。