PostgreSQLCung cấp một số loại chỉ soi kèo bóng đá truoctran: B-cây, băm, gist, sp-gist, gin, brin và phần mở rộngBloom. Mỗi loại chỉ soi kèo bóng đá truoctran sử dụng một thuật toán khác nhau phù hợp nhất với các loại truy vấn khác nhau.Tạo chỉ soi kèo bóng đá truoctran
Lệnh tạo ra các chỉ soi kèo bóng đá truoctran B-cây, phù hợp với các tình huống phổ biến nhất.
B-Trees có thể xử lý soi kèo bóng đá truoctran truy vấn bình đẳng và phạm vi trên dữ liệu có thể được sắp xếp thành một số thứ tự. Cụ thể,PostgreSQLTrình lập kế hoạch truy vấn sẽ xem xét sử dụng chỉ soi kèo bóng đá truoctran B-cây bất cứ khi nào một cột được lập chỉ soi kèo bóng đá truoctran có liên quan đến việc so sánh bằng cách sử dụng một trong các toán tử này:
< |
<= |
= |
= |
|
Xây dựng tương đương với sự kết hợp của soi kèo bóng đá truoctran toán tử này, chẳng hạn nhưgiữa
vàin
, cũng có thể được triển khai với tìm kiếm chỉ soi kèo bóng đá truoctran B-cây. Ngoài ra, mộtlà null
hoặckhông phải là null
Điều kiện trên cột chỉ soi kèo bóng đá truoctran có thể được sử dụng với chỉ soi kèo bóng đá truoctran B-cây.
Trình tối ưu hóa cũng có thể sử dụng chỉ soi kèo bóng đá truoctran B-cây cho các truy vấn liên quan đến các toán tử khớp mẫunhư
và~
nếuMẫu là một hằng số và được neo vào đầu chuỗi - ví dụ:col như 'foo%'
hoặccol ~ '^foo'
, nhưng khôngcol Like '%Bar'
. Tuy nhiên, nếu cơ sở dữ liệu của bạn không sử dụng locale C, bạn sẽ cần tạo chỉ soi kèo bóng đá truoctran với lớp toán tử đặc biệt để hỗ trợ lập chỉ soi kèo bóng đá truoctran các truy vấn khớp mẫu;Phần 11.10bên dưới. Cũng có thể sử dụng các chỉ soi kèo bóng đá truoctran B-cây choilike
và~*
, nhưng chỉ khi mẫu bắt đầu bằng soi kèo bóng đá truoctran ký tự không alphabetic, tức là, soi kèo bóng đá truoctran ký tự không bị ảnh hưởng bởi chuyển đổi chữ hoa/thường.
Các chỉ soi kèo bóng đá truoctran B-cây cũng có thể được sử dụng để truy xuất dữ liệu theo thứ tự được sắp xếp. Điều này không phải lúc nào cũng nhanh hơn một lần quét và sắp xếp đơn giản, nhưng nó thường hữu ích.
Chỉ số băm chỉ có thể xử lý các so sánh bình đẳng đơn giản. Trình lập kế hoạch truy vấn sẽ xem xét sử dụng chỉ soi kèo bóng đá truoctran băm bất cứ khi nào một cột được lập chỉ soi kèo bóng đá truoctran có liên quan đến việc so sánh bằng cách sử dụng=
toán tử. Lệnh sau được sử dụng để tạo chỉ soi kèo bóng đá truoctran băm:
Tạo chỉ soi kèo bóng đá truoctrantên
trênBảng
Sử dụng băm (Cột
);
Các chỉ soi kèo bóng đá truoctran GIST không phải là một loại chỉ soi kèo bóng đá truoctran duy nhất, mà là một cơ sở hạ tầng trong đó có thể thực hiện nhiều chiến lược lập chỉ soi kèo bóng đá truoctran khác nhau. Theo đó, các toán tử cụ thể có thể sử dụng chỉ soi kèo bóng đá truoctran GIST khác nhau tùy thuộc vào chiến lược lập chỉ soi kèo bóng đá truoctran (Lớp toán tử). Ví dụ, phân phối tiêu chuẩn củaPostgreSQLBao gồm các lớp toán tử GIST cho một số loại dữ liệu hình học hai chiều, hỗ trợ các truy vấn được lập chỉ soi kèo bóng đá truoctran sử dụng các toán tử này:
<< |
&< |
& |
|
<< | |
& <| |
| & |
| |
@ |
<@ |
~ = |
&& |
(xemPhần 9.11Đối với ý nghĩa của soi kèo bóng đá truoctran toán tử này.) soi kèo bóng đá truoctran lớp toán tử GIST có trong phân phối tiêu chuẩn được ghi lại trongBảng 64.1. Nhiều lớp toán tử chủ chính khác có sẵn trongĐóng góp
Bộ sưu tập hoặc như soi kèo bóng đá truoctran dự án riêng biệt. Để biết thêm thông tin, xemChương 64.
Chỉ số GIST cũng có khả năng tối ưu hóaHồilân cận gần nhấtHồitìm kiếm, chẳng hạn như
Chọn * Từ địa điểm đặt hàng theo vị trí <- Điểm '(101,456)' giới hạn 10;
tìm thấy mười vị trí gần nhất với một điểm soi kèo bóng đá truoctran tiêu nhất định. Khả năng làm điều này một lần nữa phụ thuộc vào lớp toán tử cụ thể đang được sử dụng.Bảng 64.1, toán tử có thể được sử dụng theo cách này được liệt kê trong cộtsoi kèo bóng đá truoctran toán tử đặt hàngKhăn.
Các chỉ soi kèo bóng đá truoctran sp-gist, như các chỉ soi kèo bóng đá truoctran GIST, cung cấp một cơ sở hạ tầng hỗ trợ các loại tìm kiếm khác nhau. SP-Gist cho phép triển khai một loạt các cấu trúc dữ liệu dựa trên đĩa không cân bằng khác nhau, chẳng hạn như tứ giác, cây K-D và cây radix (thử).PostgreSQLBao gồm các lớp toán tử SP-Gist cho các điểm hai chiều, hỗ trợ các truy vấn được lập chỉ soi kèo bóng đá truoctran sử dụng các toán tử này:
<< |
|
~ = |
<@ |
<^ |
^ |
(xemPhần 9.11Đối với ý nghĩa của soi kèo bóng đá truoctran toán tử này.) soi kèo bóng đá truoctran lớp toán tử sp-gist có trong phân phối tiêu chuẩn được ghi lại trongBảng 65.1. Để biết thêm thông tin, xemChương 65.
Chỉ số Gin làCác chỉ soi kèo bóng đá truoctran đảo ngượcHồiphù hợp với các giá trị dữ liệu có chứa nhiều giá trị thành phần, chẳng hạn như mảng. Chỉ số đảo ngược chứa một soi kèo bóng đá truoctran nhập riêng cho từng giá trị thành phần và có thể xử lý hiệu quả các truy vấn kiểm tra sự hiện diện của các giá trị thành phần cụ thể.
Giống như Gist và Sp-Gist, Gin có thể hỗ trợ nhiều chiến lược lập chỉ soi kèo bóng đá truoctran do người dùng xác định khác nhau và các toán tử cụ thể có thể sử dụng chỉ số GIN khác nhau tùy thuộc vào chiến lược lập chỉ soi kèo bóng đá truoctran. Ví dụ, phân phối tiêu chuẩn củaPostgreSQLBao gồm một lớp toán tử GIN cho các mảng, hỗ trợ các truy vấn được lập chỉ soi kèo bóng đá truoctran bằng cách sử dụng các toán tử này:
<@ |
@ |
= |
&& |
(xemPhần 9,18Đối với ý nghĩa của soi kèo bóng đá truoctran toán tử này.) soi kèo bóng đá truoctran lớp toán tử Gin có trong phân phối tiêu chuẩn được ghi lại trongBảng 66.1. Nhiều lớp toán tử Gin khác có sẵn trongđóng góp
Bộ sưu tập hoặc như soi kèo bóng đá truoctran dự án riêng biệt. Để biết thêm thông tin, xemChương 66.
BRIN INDEXES (Tóm tắt các chỉ soi kèo bóng đá truoctran phạm vi khối) Lưu trữ tóm tắt về các giá trị được lưu trữ trong phạm vi khối vật lý liên tiếp của bảng. Giống như Gist, SP-Gist và Gin, Brin có thể hỗ trợ nhiều chiến lược lập chỉ soi kèo bóng đá truoctran khác nhau và các toán tử cụ thể mà chỉ số Brin có thể được sử dụng thay đổi tùy thuộc vào chiến lược lập chỉ soi kèo bóng đá truoctran.
< |
<= |
= |
= |
|
soi kèo bóng đá truoctran lớp toán tử Brin có trong phân phối tiêu chuẩn được ghi lại trongBảng 67.1. Để biết thêm thông tin, xemChương 67.