10個の異なるテーブルでの読み取りと書き込みの永続性をテストするベンチマークを実装しました。
私は10個のJavaスレッドを持っており、それぞれがそのテーブルに対してのみクエリを実行します。
スレッド1はTable1に対して操作を実行し、スレッド2はTable2に対して操作を実行します。
これらのスレッドを並行して実行し、パーティション化されていないTable [1-10]で複数の読み取りを実行するパフォーマンスと、各TableXを9つの等しいパーティションにパーティション化する同じベンチマークのパフォーマンス(それぞれが1週間の測定、合計9週間を表す)を比較しました。データの)。
私は興味深く、説明できない結果を受け取りました:
単一スレッドの単一操作のパフォーマンスは、非パーティションテーブルの場合は2倍優れていますが、すべてのスレッドのすべての操作の合計時間は、パーティションテーブルの場合は5倍高速です。
ログを確認したところ、パーティション化されたテーブルを使用すると、より多くの操作を並列化できることがわかりました。単一の操作は長くなりますが、異なるスレッドの複数の操作は並列化されるため、終了が速くなります。
各スレッドは独自のテーブルでのみ操作を実行するため、なぜこれが発生するのかわかりません。
すべてのテーブルとパーティションにMyISAMエンジンのみを使用しています。