web-dev-qa-db-ja.com

PostgreSQLはnull値にインデックスを付けますか?

そのようなテーブルがある場合:

Food
-----------------
name | price | x

名前と価格にインデックスを作成するとしますが、データベースの一部の行には、名前と価格の両方に多数のnull値があります。 PostgreSQLはこれらの行のインデックス作成を自動的にスキップしますか?この動作は今後のリリースで変更される可能性があると聞きました。

4
joslinm

少なくともPostgreSQL 8.3以降、PostgreSQLはインデックスのビットマップを使用してNULLにインデックスを付けます。それは「はい」という意味です。ただし、バイトではなく少し時間がかかります。 btreeインデックスがNULL以外の値の使用に関係している限り、速度上の利点はありません。期待どおりに動作します。

ドラゴンズはこちら:詳細はこちらをご覧ください、

3
Evan Carroll