[pgsql-jp: 40859] Re: PostgreSQLにおける複合PKと複合INDEXの選択基準

Itagaki Takahiro itagaki.takahiro @ gmail.com
2011年 7月 15日 (金) 01:37:08 JST


2011/7/14  <nozawakz @ nttdata.co.jp>:
> 下記のSQL(※)では、第1PK、第2PK、第3PKで一意に絞り込まれるため、複合PK(pk_t_z)を使っての実行計画が選択されることを
> 期待していたのですがExplain文で取得みると複合INDEX(idx_t_z_02)の方が選択されておりました。
>    "pk_t_z" PRIMARY KEY, btree (a, b, c)
>    "idx_t_z_02" btree (a, b, d)

(a, b) までで、十分な絞込みができると判断されたのだと思います。
インデックスの選択は、確かに絞込みが強いものが優先されることが
多いのですが、ほかにもインデックスのサイズが考慮されます。
pg_relation_size() などをつかって、pk_t_z と idx_t_z_02 の
ファイルサイズを比べてみてください。

-- 
Itagaki Takahiro


pgsql-jp メーリングリストの案内