MySql データベースがあります。多くのレコード (約4,000,000,000行) があり、それらを削減するためにそれらを処理したい (約1,000,000,000行に削減)。
次のテーブルがあるとします。
table RawData : RawData に挿入したい 1 秒あたり 5000 行を超える行があります
table ProcessedData : このテーブルは、RawData で挿入された行の処理済み (集約) ストレージです。 最小行数 > 20,000,000
table ProcessedDataDetail : テーブル ProcessedData (集計されたデータ) の詳細を書き込みます
ユーザーは、 8つ以上の他のテーブルに参加する必要があるProcessedDataテーブルを表示および検索したいと考えています。RawData への挿入と ProcessedData での検索 (ProcessedData INNER JOIN ProcessedDataDetail INNER JOIN ...) は非常に遅いです。多くのインデックスを使用しました。私のデータの長さは1Gですが、インデックスの長さは4Gです:)。(私はこれらのインデックスを乗り切りたいと思っています。それらは私のプロセスを遅くします)
このプロセスの速度を上げるにはどうすればよいですか?
ProcessedDataのシャドウ テーブルが必要だと思います。名前はProcessedDataShadowです。次に RawData を処理して ProcessedDataShadow で集計し、結果をProcessedDataShadowとProcessedDataに挿入します。あなたの考えは??
(私はC++でプロジェクトを開発しています)
前もって感謝します。