Nó chắc chắn là như vậy. Chúng tôi đã thảo luận rằng rất chi tiết theo câu hỏi liên quan này:
Không gian được phân bổ theo bội số MAXALIGN
, thường là 8 byte trên HĐH 64 bit hoặc (ít phổ biến hơn) 4 byte trên HĐH 32 bit. Nếu bạn không chắc chắn, hãy kiểm tra pg_controldata
. Nó cũng phụ thuộc vào kiểu dữ liệu của các cột được lập chỉ mục (một số yêu cầu đệm căn chỉnh) và nội dung thực tế.
Một chỉ mục trên, giả sử, hai integer
cột (mỗi cột 4 byte) thường kết thúc chính xác như một chỉ mục trên chỉ một, trong đó 4 byte khác bị mất để đệm liên kết.
Trong trường hợp như vậy, thực sự không có nhược điểm nào cho trình hoạch định truy vấn sử dụng một chỉ mục trên (a,b)
- so với chỉ mục trên (a)
. Và thường thì tốt hơn cho nhiều truy vấn sử dụng cùng một chỉ mục. Cơ hội cho nó (hoặc một phần của nó) nằm trong bộ đệm (nhanh) tăng lên khi được chia sẻ.
Nếu bạn đã duy trì một chỉ mục trên (a,b)
, thì sẽ không có ý nghĩa gì khi chỉ tạo một chỉ mục khác (a)
- trừ khi nó nhỏ hơn đáng kể . Điều này cũng không đúng đối (b,a)
vs (a)
. Theo liên kết trong dòng đầu tiên để biết thêm về điều đó.
Đến từ hướng ngược lại, khi bạn cần một chỉ mục bổ sung như vậy (a,b)
, sau đó xem xét bỏ chỉ mục hiện tại vào (a)
- nếu có thể. Thường thì không thể vì đó là chỉ số của PK hoặc UNIQUE
ràng buộc. Vì Postgres 11, bạn có thể thoát khỏi việc chỉ thêm b
vào định nghĩa ràng buộc với INCLUDE
mệnh đề thay thế. Chi tiết trong hướng dẫn.
Hoặc tạo chỉ mục mới (b,a)
thay vào đó để chỉ bao gồm các truy vấn b
. Đối với chỉ điều kiện bình đẳng, thứ tự của các biểu thức chỉ mục trong các chỉ mục btree không quan trọng. Nó làm, mặc dù, khi liên quan đến điều kiện phạm vi. Xem:
Có những nhược điểm tiềm ẩn trong việc bao gồm các cột bổ sung trong một chỉ mục, ngay cả khi điều đó chỉ sử dụng không gian bị mất cho phần đệm căn chỉnh:
- Bất cứ khi nào cột bổ sung được cập nhật, chỉ mục cũng cần cập nhật, điều này có thể thêm chi phí để viết các hoạt động và tạo thêm chỉ số phình to.
- Cập nhật HOT (Heap Only Tuple) trên bảng là không thể trong khi bất kỳ cột chỉ mục nào có liên quan.
Thêm thông tin cập nhật HOT:
Cách đo kích thước đối tượng: