1

通常のアプローチと比較して、テーブルのパーティショニングを使用することはどのくらい有利ですか?

プロセスの有用性を統計的に強調できるサンプルケースまたは詳細な比較分析のようなものはありますか (これは強すぎる言葉であることは承知していますが、いくつかの数字で示されていると非常に役立ちます)。

4

2 に答える 2

2

パーティショニングは非常に強力であり、実際にはテーブルデータをいくつかの小さなテーブルに分割し、ビューを使用してそれらを統合します。

たとえば、「ipnumbers」はテーブル「ipnumbers_1」、「ipnumbers_2」、および「ipnumbers_3」に分割できます。最初のテーブルには制約が含まれているため、0.0.0.0〜50.0.0.0の範囲のipnumberのみが格納され、2番目のテーブルは50.0.0.1から100.0.0.0などの範囲のみを格納できる制約が含まれています。次に、パーティション化されたテーブルを1つに統合するビューを追加できます。

SELECT * FROM ipnumbers_1
UNION ALL
SELECT * FROM ipnumbers_2
UNION ALL
SELECT * FROM ipnumbers_3

ここで、ビューに特定のipnumberを照会すると、次のようになります。

SELECT * FROM ipnumberview WHERE ipno=60.0.0.1

.. SQL Serverクエリオプティマイザは、テーブル'ipnumbers_2'のみをチェックする必要があることを認識しているため、速度が大幅に向上します。

また、スキーマにバインドされたビューを挿入したり(データを正しい宛先テーブルに自動的に配置したり)、テーブルを別のサーバーに配置したり(セットアップは少し難しいですが)、ビューにインデックスを追加したりすることもできます。

楽しむ!

于 2010-05-24T20:31:15.553 に答える
0

あなたはずっと読むかもしれません

これこれ

記事はmysql固有であり、別のDBMSで作業する場合、パフォーマンスに関するすべての結論を盲目的にとるべきではありませんが、それでも記事は基本的な概念とアイデアをいくつかの実数と例とともにうまく説明しています。

于 2010-05-18T12:32:42.670 に答える