আমি একটি ডাটাবেস কলাম নামের auto_review
যেখানে কলাম ধরনের boolean
। অ্যাক্টিভেকর্ড ORM ব্যবহার করে তৈরি করা হয়েছে সেই ক্ষেত্রটির জন্য একটি সূচক রয়েছে।
CREATE INDEX index_table_on_auto_renew ON table USING btree (auto_renew);
আমি যখন বুলিয়ান মানের জন্য ক্ষেত্রটি জিজ্ঞাসা করি, তখন পিজি প্রত্যাশা অনুযায়ী সূচকটি ব্যবহার করে।
EXPLAIN for: SELECT "table".* FROM "table" WHERE "table"."auto_renew" = 'f'
QUERY PLAN
----------------------------------------------------------------------------------------------
Bitmap Heap Scan on table (cost=51.65..826.50 rows=28039 width=186)
Filter: (NOT auto_renew)
-> Bitmap Index Scan on index_domains_on_auto_renew (cost=0.00..44.64 rows=2185 width=0)
Index Cond: (auto_renew = false)
(4 rows)
মানটি হলে NULL
, একটি ক্রমিক স্ক্যান ব্যবহৃত হয় is
EXPLAIN for: SELECT "table".* FROM "table" WHERE "table"."auto_renew" IS NULL
QUERY PLAN
----------------------------------------------------------------
Seq Scan on table (cost=0.00..1094.01 rows=25854 width=186)
Filter: (auto_renew IS NULL)
(2 rows)
আমি এই পছন্দ পিছনে কারণ জানতে আগ্রহী।