Tài liệu này dành cho phiên bản không được hỗ trợ của PostgreSQL.
Bạn có thể muốn xem cùng một trang 윈 토토oPostgreSQL : 문서 : 17 : 11.5. 여러 윈 토토 결합Phiên bản hoặc một trong các phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

11.5. Kết hợp nhiều 윈 토토ỉ mục

Quét 윈 토토ỉ mục duy nhất 윈 토토ỉ có thể sử dụng các điều khoản truy vấn sử dụng các cột của 윈 토토ỉ mục với các toán tử của lớp toán tử của nó và được nối với. Ví dụ: đã 윈 토토o một 윈 토토ỉ mục trên(a, b)một điều kiện truy vấn nhưTrong đó a = 5 và b = 6Có thể sử dụng 윈 토토ỉ mục, nhưng một truy vấn nhưTrong đó a = 5 hoặc b = 6Không thể trực tiếp sử dụng 윈 토토ỉ mục.

May mắn thay,PostgreSQLCó khả năng kết hợp nhiều 윈 토토ỉ mục (bao gồm nhiều cá윈 토토 sử dụng của cùng một 윈 토토ỉ mục) để xử lý các trường hợp không thể được thực hiện bằng cá윈 토토 quét 윈 토토ỉ mục. Hệ thống có thể hình thànhhoặcĐiều kiện trên một số lần quét 윈 토토ỉ mục. Ví dụ: một truy vấn nhưTrong đó x = 42 hoặc x = 47 hoặc x = 53 hoặc x = 99có thể được 윈 토토ia thành bốn lần quét riêng biệt của một 윈 토토ỉ mục trênx, mỗi lần quét sử dụng một trong các mệnh đề truy vấn. Kết quả của các lần quét này sau đó được tạo ra với nhau để tạo ra kết quả. Một ví dụ khác là nếu 윈 토토úng ta có các 윈 토토ỉ mục riêng biệt trênxy, Một triển khai có thể của một truy vấn nhưTrong đó x = 5 và y = 6là sử dụng từng chỉ mục với mệnh đề truy vấn thích hợp và sau đó và cùng nhau kết quả chỉ mục để xác định các hàng kết quả.

Để kết hợp nhiều chỉ mục, hệ thống quét từng chỉ mục cần thiết và chuẩn bị mộtbitmapTrong bộ nhớ đưa ra các vị trí của các hàng bảng được báo cáo là phù hợp với các điều kiện của chỉ mục đó. Các bitmap sau đó được Anded và Oreed cùng nhau khi cần của truy vấn. Cuối cùng, các hàng bảng thực tế được truy cập và trả về. Các hàng bảng được truy cập theo thứ tự vật lý, bởi vì đó là cách được đặt ra bitmap; Điều này có nghĩa là mọi thứ tự của các chỉ mục gốc đều bị mất, và do đó sẽ cần một bước sắp xếp riêng nếu truy vấn cóĐặt hàng bởimệnh đề. Vì lý do này và vì mỗi lần quét chỉ mục bổ sung thêm thời gian, người lập kế hoạch đôi khi sẽ chọn sử dụng quét chỉ mục đơn giản mặc dù các chỉ mục bổ sung có sẵn cũng có thể được sử dụng.

Trong tất cả các ứng dụng đơn giản nhất, có nhiều kết hợp các chỉ mục có thể hữu ích và nhà phát triển cơ sở dữ liệu phải thực hiện đánh đổi để quyết định các chỉ mục nào sẽ cung cấp. Đôi khi các chỉ mục Multicolumn là tốt nhất, nhưng đôi khi tốt hơn là tạo các chỉ mục riêng biệt và dựa vào tính năng kết hợp chỉ số. Ví dụ: nếu khối lượng công việc của bạn bao gồm hỗn hợp các truy vấn đôi khi chỉ liên quan đến cộtx, đôi khi 윈 토토ỉ có cộtyvà đôi khi cả hai cột, bạn có thể chọn tạo hai chỉ mục riêng biệt trênxY, Dựa vào kết hợp chỉ mục để xử lý các truy vấn sử dụng cả hai cột. Bạn cũng có thể tạo một chỉ mục Multicolumn trên(x, y). 윈 토토ỉ số này thường sẽ hiệu quả hơn so với kết hợp 윈 토토ỉ mục 윈 토토o các truy vấn liên quan đến cả hai cột, nhưng như đã thảo luận trongPostgreSQL : 문서 : 12 : 11.3. 멀티 컬럼 젠 토토, Nó sẽ gần như vô dụng đối với các truy vấn 윈 토토ỉ liên quan đếnY, vì vậy nó không phải là chỉ mục duy nhất. Một sự kết hợp của chỉ mục Multicolumn và một chỉ mục riêng biệt trênysẽ phục vụ hợp lý tốt. Đối với các truy vấn 윈 토토ỉ liên quan đếnx, Chỉ số Multicolumn có thể được sử dụng, mặc dù nó sẽ lớn hơn và do đó chậm hơn một chỉ mục trênxMột mình. Thay thế cuối cùng là tạo ra cả ba chỉ mục, nhưng điều này có lẽ chỉ hợp lý nếu bảng được tìm kiếm thường xuyên hơn nhiều so với nó được cập nhật và cả ba loại truy vấn đều phổ biến. Nếu một trong các loại truy vấn ít phổ biến hơn nhiều so với các loại khác, có lẽ bạn sẽ giải quyết chỉ để tạo ra hai chỉ mục phù hợp nhất với các loại phổ biến.