現在、(現在) 約 15,000 製品の統計データをインポートするアプリケーションを構築しています。現在、1 つのソースからの毎日の統計に対して 1 つのデータベース テーブルを維持する場合、1 日あたり 15,000 行のデータ (行ごとに 5 ~ 10 フィールドとしましょう。主に float、int) が増加します。明らかに、1 つのテーブルに年間 500 万件を超えるレコードが含まれています。
それは、他のソースからデータを取り込むという考えほど私には関係ありません (したがって、新しいソースごとにデータベースのサイズを 500 万レコードずつ増やします)。
現在、データは統計/傾向ベースのデータであり、基本的に 1 レコードにつき 1 日 1 回の書き込みと、多くの読み取りが行われます。ただし、オンザフライのレポートとグラフ作成のために、ルール (日付範囲、値範囲など) に基づいてデータのサブセットにすばやくアクセスする必要があります。
私の質問は、これがデータ (MySQL InnoDb テーブル) を保存する最良の方法ですか、それとも統計/傾向データを保存および処理するためのより良い方法ですか?
この時点で検討したその他のオプション: 1. 複数のデータベース (製品ごとに 1 つ)。データ ソースごとに個別のテーブルがあります。(つまり、データベース: ProductA、テーブル:Source_A、Source_B、Source_C) 2. 1 つのデータベース、複数のテーブル (製品/データ ソースごとに 1 つ) (つまり、データベース: Products、テーブル: ProductA_SourceA、ProductA_SourceB など。 ) 3.factual
データベース内のすべてまたは特定の製品情報と、statistical
別のディレクトリ内の csv、xml、json (フラット ファイル) 内のすべてのデータ。
これまでのところ、これらのオプションはどれも管理しやすく、それぞれに長所と短所があります。開発のアルファ段階に入る前に、妥当な解決策が必要です。