超高速データベースで10億行をスキャン
バックグラウンド ローカルデータベースには、約13億の一意の行が含まれています。各行は、特定の緯度と経度(場所)に間接的に関連付けられています。各行には日付スタンプがあります。 使用事例 問題は次のとおりです。 ユーザーは、開始/終了日と値の範囲(たとえば、100から105)を設定します。 システムは、特定の日付に一致するすべての行を、場所ごとにグループ化して収集します。 システムは、これらの日付の間に、指定された値の範囲に該当する可能性がある場所を決定します。 システムは、一致するすべての場所をユーザーに表示します。 これは速度と規模の問題です。 質問 そのようなシステムが5秒未満でユーザーの結果を取得できると想像できる最も安価なソリューションアーキテクチャは何ですか。 現在のシステム 現在の環境は次のとおりです。 PostgreSQL 8.4(アップグレードは可能です。データベースの切り替えはオプションではありません) RおよびPL / R XFS WD VelociRaptor 8 GB RAM(Corsair G.Skill; 1.3 GHz) クアッドコア本物のインテル7(2.8 GHz) Ubuntu 10.10 ハードウェアのアップグレードは許容されます。 更新-データベース構造 数十億行が次のようなテーブルにあります。 id | taken | location_id | category | value1 | value2 | value3 id-主キー 取られた-行に割り当てられた日付 location_id-緯度/経度への参照 …