ブール型カラムが1つのテーブルがあります。Postgres SQL:ブール型カラムのインデックスを作成する
productid integer
isactive (boolean)
私はispublish
列
CREATE INDEX idx_product_ispublish ON product USING btree (ispublish)
re execute
SELECT productid
FROM
product
WHERE ispublish
LIMIT 15 OFFSET 0
result
のインデックスを作成しAffterクエリ
SELECT productid
FROM
product
WHERE ispublish
LIMIT 15 OFFSET 0
を実行します3210は=>は差 私は 試みられてきた
しかし、結果は同じ私に説明することができます
CREATE INDEX idx_product_ispublish ON product USING btree (ispublish)
CREATE INDEX idx_product_ispublish ON product USING btree (ispublish)
CREATE INDEX idx_product_ispublish ON product (ispublish) WHERE ispublish is TRUE
?
よう部分インデックスを作成するのが最善であるispublish' WHERE - これは索引のみのスキャンをトリガーする必要があります(あなたのためにほとんどの場合、これはf.exを持つ行の数に依存します)。 - 部分インデックスの述語のWHERE句**は、使用するためにあなたのクエリの述語と一致しなければなりません**。 'WHERE ispublish'、' WHERE ispublish = TRUE'、 'WHERE ispublish IS TRUE'は3つの異なる述語です。 – pozs