PostgreSQL sẽ chỉ sử dụng một chỉ mục nếu nó nghĩ rằng nó sẽ rẻ hơn theo cách đó. Một chỉ mục trên boolean
cột, chỉ có thể nhận hai giá trị có thể, hầu như sẽ không bao giờ được sử dụng, vì đọc tuần tự toàn bộ bảng sẽ rẻ hơn so với sử dụng I / O ngẫu nhiên trên chỉ mục và bảng nếu phần lớn của bảng phải được truy xuất .
Chỉ mục trên boolean
cột chỉ hữu ích
-
trong các tình huống kho dữ liệu, nơi nó có thể được kết hợp với các chỉ mục khác thông qua quét chỉ mục bitmap .
-
nếu chỉ một phần nhỏ của bảng có giá trị
TRUE
(hoặcFALSE
cho vẫn đề đó). Trong trường hợp này, cách tốt nhất là tạo chỉ mục một phần thíchCREATE INDEX ON mytab((1)) WHERE boolcolumn;