1

わかりました、mySQL でいくつかのテーブルを分割することから始めたところです。これを説明する方法はいくつかありますが、私が見つけられないのは、より実用的なアプローチです。- 各パーティショニング方法が最も効果的なのは、どのタイプのデータですか?

それとも本当に関係ありませんか?

参照: http://dev.mysql.com/tech-resources/articles/performance-partitioning.html

4

2 に答える 2

4

それは、発生しているパフォーマンスの問題の種類によって異なります。

MySQL 5.1 のパーティショニングでは、主キーの最初のビットのみをパーティショニングできます。これは、有用な形式のパーティショニングを使用する場合、多くの場合、複合主キーを持つことが望ましいことを意味します。

最も一般的な使用例の 1 つは、古いデータを期限切れにすることです。その場合、主キーを日付/時刻とそのパーティションで開始する必要があります。

次に、古いパーティションをプログラムで削除することにより、行を期限切れにすることができます。

その他のケースでは、一般的なクエリがパーティション プルーニングの恩恵を受けることができます。

パーティショニングに関するすべてのパフォーマンスの問題を解決できるわけではないことに注意してください。それは魔法ではありません。パーティションのプルーニングの恩恵を受けないクエリの場合、すべてのパーティションをクエリする必要があります。MySQL はこれを並行して実行しないため、通常、パーティション化されていないテーブルを使用するのと同じくらい遅くなります。

  1. パフォーマンスの問題を正確に特定する
  2. それらを修正するのにどの程度の改善が必要かを決定します
  3. 他のユースケースで許容できるパフォーマンスの低下を判断する
  4. さまざまな異なるセットアップで、本番グレードのハードウェア上で本番サイズのデータ​​をテスト、テスト、テスト、そして再度テストします。
  5. 満足するまで繰り返します。
  6. 関連する機能テストを実行します。リリース!
于 2010-03-22T22:36:42.117 に答える
3

時間/日付ベースのパーティショニングと、巨大なデータ フローを使用したサブパーティショニングに関するこの素晴らしい投稿を共有させてください。パーティショニングがスケーラブルなアーキテクチャの優れたソリューションになる方法を示しています。

于 2010-11-22T17:30:02.237 に答える