0

これが取引です。毎日の株価データを格納するスキーマとして設計しました。同じ構造の「todayData」と「historicalData」の2つのテーブルがあります。2つのテーブルには、ストレージエンジンとしてinnodbエンジンがあります。2つのテーブル間にFKはなく、独立しています。

今日のデータを表示する必要がある場合は、今日のテーブルをクエリし、レポートや傾向分析などを生成する必要がある場合は、履歴テーブルに依存します。真夜中の間に、今日のデータは履歴テーブルに移動します。

質問は歴史的であり、数週間で巨大になり(> 10 GBおよびカウント)、単一のテーブルからこのデータを提供することは無意味であることは言うまでもありません。

履歴からレポートが生成されるようにするには、どうすればよいですか。

パーティション分割などを提案されていますが、他に方法はありますか?

ありがとうございました

ボー

4

1 に答える 1

0

ビッグデータに特効薬はありません。すべてはデータとデータ使用量(アクセスパターンなど)に依存します。まず、テーブルに適切なインデックスが付けられ、クエリが最適であり、十分なメモリがあることを確認します。また、単一のサーバーに含めるにはデータが多すぎる場合は、シャード/パーティション(ただし、シャードキーを選択するときのアクセスパターンに注意してください。単一のレポートに対して複数のパーティションをクエリする必要がある場合は、問題があります。本当に必要な場合は、Buf、それらを並行してクエリできることを確認してください-組み込みのパーティション分割では現在不可能なことです(したがって、アプリレベルのシャーディングロジックが必要です))

于 2012-05-18T11:22:37.343 に答える