3

10個の異なるテーブルでの読み取りと書き込みの永続性をテストするベンチマークを実装しました。

私は10個のJavaスレッドを持っており、それぞれがそのテーブルに対してのみクエリを実行します。

スレッド1はTable1に対して操作を実行し、スレッド2はTable2に対して操作を実行します。

これらのスレッドを並行して実行し、パーティション化されていないTable [1-10]で複数の読み取りを実行するパフォーマンスと、各TableXを9つの等しいパーティションにパーティション化する同じベンチマークのパフォーマンス(それぞれが1週間の測定、合計9週間を表す)を比較しました。データの)。

私は興味深く、説明できない結果を受け取りました:

単一スレッドの単一操作のパフォーマンスは、非パーティションテーブルの場合は2倍優れていますが、すべてのスレッドのすべての操作の合計時間は、パーティションテーブルの場合は5倍高速です。

ログを確認したところ、パーティション化されたテーブルを使用すると、より多くの操作を並列化できることがわかりました。単一の操作は長くなりますが、異なるスレッドの複数の操作は並列化されるため、終了が速くなります。

各スレッドは独自のテーブルでのみ操作を実行するため、なぜこれが発生するのかわかりません。

すべてのテーブルとパーティションにMyISAMエンジンのみを使用しています。

4

1 に答える 1

3

パーティショニングがサーバーのパフォーマンスの向上にどのように役立つかについての記事をご覧ください

テーブルパーティショニングを使用するかどうかを決定する方法

また、専門家が回答したほぼ同じ質問をチェックしてください

Stackoverflowの質問

于 2012-12-27T12:38:24.950 に答える