私は、あるソースから約20の任意の測定を毎秒受け取るプログラムを持っています。各測定には、タイプ、タイムスタンプ、最小値、平均値、最大値があります。次に、各測定タイプのX集約を作成する必要があります。数百万行のmysqlハードドライブの効率
プログラムは100秒間のソースを同時に設定することができます。その結果、すばやく保存してすばやく取得する必要がある多くのデータが生成されます。
これが実行されるシステムにはメモリ/ストレージ/ cpuの制限はありませんが、その機能の限界近くでhddに書き込む別のサービスがあります。この質問のために、これが "トップライン"のHDDであると仮定して、私はhddにアップグレードすることはできません。
私が今やっていることは、新しい測定タイプに遭遇したときに各測定のタイムスタンプ値に沿ってパーティショニングする測定タイプごとのテーブル(20xソース)を生成することです。私はこれを行って、HDD全体の測定データを断片化しないようにしています。これにより、最小限の量の「シーク」でデータを挿入または照会できるようになります。
これは意味がありますか?ジョインや複雑なクエリを行う必要はありません。タイムスタンプ範囲では、すべてストレートなバッチインサートまたは単一の測定タイプのクエリです。
MySqlはどのようにデータをHDDのテーブルに保存しますか? &クエリの挿入中にHDDのシークを最小限に抑えるようにDBを設計するにはどうすればよいですか?