1

最終的に約 14 億のレコード、11 列、3 つの主キーを持つテーブルがあります。

テーブルの最初の 1/3 にデータを入力しましたが、クエリ時間はすでにかなり遅くなっています。スペース要件を減らすためにいくつかの列を再フォーマットしました.主キーの1つは、各インデックスが3つの追加オプションに展開されるメタデータテーブルにリンクするインデックスのような整数です(6つの主キーを3つの主キーに効果的に正規化します) )。

次に考えたのは、たくさんのパーティションを作成することでした。2 番目の主キーは日付列で、これはデータをスライスするための最も一般的なディメンションです。パーティションが効果的で、挿入時間も改善されることを願っています。

しかし、適切なパーティション数を知るにはどうすればよいでしょうか? 私の最初の推測は 8 で、これは遅すぎます。質問する必要があると思ったとき、100 を試してみようとしましたが、Google は役立つ回答をくれませんでした。

テーブルは非常に大きく、それを生成する計算プロセスは非常に高価であるため、非常に多くの異なるパーティション番号を試すことはできません。したがって、これに関する標準的なアドバイスは非常に役立ちます。

4

1 に答える 1

3

考慮すべき事項は次のとおりです。

  • MySQL 5.5+ のパーティションの最大数は 1024 です。
  • インデックスを再構築する必要がありますが、番号を再生成せずにパーティションの数を変更できます。
  • パーティショニングは、クエリがより少ないパーティションにヒットし、利用可能なコアがある場合にのみ、クエリを高速化します

クエリがすべてまたは多くのパーティションにヒットする場合、この方法でパーティショニングしてもあまり役に立ちません。セットアップが効率的である可能性もありますが、ハードウェアがより速く結果を生成することができません。

于 2013-05-28T11:20:53.883 に答える