4


2

列選択性の計算方法

テーブルにインデックスを作成し、列の選択性に基づいてインデックス内の列の順序を決定しようとしています。

そのため、最も選択的な列(さらに選択肢を最も絞り込む列)がインデックスの最初になり、次に2番目に選択的な列が続きます。

カラムの選択性を計算するにはどうすればよいですか?

2 Answer


7


各列の単純な比率です。

(列の一意の値の数)から(テーブル内の行の数)

数値の計算はRDBMSに依存します。 SQL Serverの場合、次のように番号を取得できます。

SELECT COUNT(DISTINCT ColumnName) FROM TableName

SELECT COUNT(*) FROM TableName


0


よくある状況では、ランドルフォは正しいです。 しかし、 SELECT COUNT()、ColumnName`に+ 10000 A + 2 B + 2 C + 2 D +や COUNT()、ColumnName2`に+ 2 A1 + 2 B1 +のような状況がある場合があります2 C1

数式では、ColumnNameの選択性が高くなっていますが、インデックスの最初の列としてColumnName2を含める方が適切です。

ロジックはそのようなものです-最初の列でフィルタリングした後、おそらく10000の結果が得られますが、ColumnName2でフィルタリングすると、2つの結果が得られます。 サーバーが正確なデータを見つけるための作業が少なくなります。