Không, bạn có thể lập chỉ mục một trường boolean nếu bạn đang lọc theo nó. Đó là một điều hoàn toàn hợp lý để làm, mặc dù như với tất cả các chỉ mục, PostgreSQL có thể chọn bỏ qua nó nếu nó không loại trừ đủ bảng - quét chỉ mục cộng với hàng tấn tìm nạp hàng có thể đắt hơn quét tuần tự - - điều này có thể ảnh hưởng đến bạn hoặc không, tùy thuộc vào các giá trị trong cột đó.
Bạn cũng nên biết rằng PostgreSQL cho phép bạn đặt các điều kiện trên các chỉ mục, điều mà tôi thường thấy hữu ích với các trường boolean. (Xem Chỉ mục từng phần
để biết chi tiết.) Nếu bạn thường lọc hoặc sắp xếp trong phạm vi đó, bạn có thể được phục vụ tốt nhất bởi một cái gì đó như CREATE INDEX ... ON table (some_field) WHERE boolean_field
.