PostgreSQL akan menggunakan indeks hanya jika dianggap lebih murah seperti itu. Indeks pada boolean
kolom, yang hanya dapat mengambil dua nilai yang mungkin, hampir tidak akan pernah digunakan, karena lebih murah untuk membaca seluruh tabel secara berurutan daripada menggunakan I/O acak pada indeks dan tabel jika persentase tabel yang tinggi harus diambil .
Indeks pada boolean
kolom hanya berguna
-
dalam skenario gudang data, yang dapat digabungkan dengan indeks lain melalui pemindaian indeks bitmap .
-
jika hanya sebagian kecil dari tabel yang memiliki nilai
TRUE
(atauFALSE
untuk hal tersebut). Dalam hal ini yang terbaik adalah membuat indeks parsial sepertiCREATE INDEX ON mytab((1)) WHERE boolcolumn;