Phiên bản được hỗ trợ:hiện tại(17)16 / 15 / 14 / 13
Phiên bản phát triển:Devel
Phiên bản không được hỗ trợ:12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3 / 7.2 / 7.1

36.16. Giao thoa tỷ lệ kèo bóng đá 88 tiện ích mở rộng cho tỷ lệ kèo bóng đá 88 chỉ mục#

tỷ lệ kèo bóng đá 88 quy trình được mô tả cho đến nay cho phép bạn xác định tỷ lệ kèo bóng đá 88 loại mới, chức năng mới và toán tử mới. Tuy nhiên, chúng tôi chưa thể xác định một chỉ mục trên một cột của một kiểu dữ liệu mới.Lớp toán tửĐối với kiểu dữ liệu mới. Sau đó trong phần này, chúng tôi sẽ minh họa khái niệm này trong một ví dụ: một lớp toán tử mới cho phương thức chỉ mục B-cây lưu trữ và sắp xếp tỷ lệ kèo bóng đá 88 số phức tạp theo thứ tự giá trị tuyệt đối tăng dần.

tỷ lệ kèo bóng đá 88 lớp toán tử có thể được nhóm thànhGia đình vận hànhĐể hiển thị mối quan hệ giữa tỷ lệ kèo bóng đá 88 lớp tương thích về mặt ngữ nghĩa. Khi chỉ có một kiểu dữ liệu duy nhất, một lớp toán tử là đủ, vì vậy chúng tôi sẽ tập trung vào trường hợp đó trước và sau đó quay lại tỷ lệ kèo bóng đá 88 gia đình vận hành.

36.16.1. tỷ lệ kèo bóng đá 88 phương thức chỉ mục và tỷ lệ kèo bóng đá 88 lớp toán tử#

tỷ lệ kèo bóng đá 88 lớp toán tử được liên kết với phương thức truy cập chỉ mục, chẳng hạn nhưB-câyhoặcGin. Phương thức truy cập chỉ tỷ lệ kèo bóng đá 88 tùy chỉnh có thể được xác định bằngPostgreSQL: Tài liệu:. Nhìn thấyChương 62Để biết chi tiết.

tỷ lệ kèo bóng đá 88 thói quen cho một phương thức chỉ mục không trực tiếp biết bất cứ điều gì về tỷ lệ kèo bóng đá 88 loại dữ liệu mà phương thức chỉ mục sẽ hoạt động. Thay vào đó, mộtlớp vận hànhXác định tập hợp tỷ lệ kèo bóng đá 88 hoạt động mà phương thức chỉ mục cần sử dụng để làm việc với một loại dữ liệu cụ thể. tỷ lệ kèo bóng đá 88 lớp toán tử được gọi như vậy bởi vì một điều họ chỉ định là tập hợpWHERE13976_14126Hỗ trợ chức năngcần thiết bởi tỷ lệ kèo bóng đá 88 hoạt động nội bộ của phương thức chỉ mục, nhưng không trực tiếp tương ứng với bất kỳ nàoWHERE-Chlause Toán tử có thể được sử dụng với chỉ tỷ lệ kèo bóng đá 88.

Có thể xác định nhiều lớp toán tử cho cùng loại dữ liệu và phương thức chỉ tỷ lệ kèo bóng đá 88. Bằng cách này, nhiều bộ ngữ nghĩa lập chỉ tỷ lệ kèo bóng đá 88 có thể được xác định cho một loại dữ liệu duy nhất.

14993_15149INT4_OPS), nhưng mỗi lớp như vậy là một thực thể độc lập và phải được xác định riêng.

36.16.2. Chiến lược phương pháp chỉ tỷ lệ kèo bóng đá 88#

tỷ lệ kèo bóng đá 88 toán tử được liên kết với lớp toán tử được xác định bởiSố chiến lược, phục vụ để xác định ngữ nghĩa của mỗi toán tử trong bối cảnh lớp toán tử của nó. Ví dụ, B-Crees áp đặt một thứ tự nghiêm ngặt đối với tỷ lệ kèo bóng đá 88 khóa, ít hơn đến lớn hơn và do đó tỷ lệ kèo bóng đá 88 toán tử nhưít hơnlớn hơn hoặc bằngKhănrất thú vị đối với cây b. Bởi vìPostgreSQLCho phép người dùng xác định tỷ lệ kèo bóng đá 88 toán tử,PostgreSQLKhông thể nhìn vào tên của toán tử (ví dụ:<hoặc =) và cho biết đó là loại so sánh nào. Thay vào đó, phương thức chỉ tỷ lệ kèo bóng đá 88 xác định một tập hợpHồiChiến lược, có thể được coi là toán tử tổng quát. Mỗi lớp toán tử chỉ định toán tử thực tế nào tương ứng với từng chiến lược cho một loại dữ liệu cụ thể và cách giải thích của ngữ nghĩa chỉ số.

Phương thức chỉ tỷ lệ kèo bóng đá 88 B-cây xác định năm chiến lược, được hiển thị trongBảng 36.3.

Bảng 36.3. Chiến lược B-Tree

Hoạt động số chiến lược
ít hơn 1
nhỏ hơn hoặc bằng 2
bằng 3
lớn hơn hoặc bằng 4
lớn hơn 5

Chỉ số băm chỉ hỗ trợ so sánh bình đẳng và do đó họ chỉ sử dụng một chiến lược, được hiển thị trongBảng 36.4.

Bảng 36.4. Chiến lược băm

Hoạt động số chiến lược
bằng 1

Chỉ số GIST linh hoạt hơn: Chúng hoàn toàn không có một tập hợp tỷ lệ kèo bóng đá 88 chiến lược cố định. Thay vào đó,HồiTính nhất quánHồiThói quen hỗ trợ của từng lớp toán tử GIST cụ thể diễn giải tỷ lệ kèo bóng đá 88 số chiến lược tuy nhiên nó thích. Ví dụ, một số lớp toán tử chỉ mục GIST tích hợp chỉ mục tỷ lệ kèo bóng đá 88 đối tượng hình học hai chiều, cung cấpR-TreeChiến lược hiển thị trongBảng 36,5. Bốn trong số này là tỷ lệ kèo bóng đá 88 thử nghiệm hai chiều thực sự (chồng chéo, giống nhau, chứa, chứa bởi);

Bảng 36.5. Gist hai chiềur-treexôngChiến lược

Hoạt động số chiến lược
hoàn toàn bên trái của 1
không mở rộng sang phải 2
chồng chéo 3
Không mở rộng sang trái của 4
hoàn toàn bên phải của 5
cùng 6
chứa 7
chứa 8
không mở rộng trên 9
hoàn toàn bên dưới 10
hoàn toàn ở trên 11
Không mở rộng bên dưới 12

tỷ lệ kèo bóng đá 88 chỉ mục sp-gist tương tự như tỷ lệ kèo bóng đá 88 chỉ mục GIST trong tính linh hoạt: Họ không có một tập hợp tỷ lệ kèo bóng đá 88 chiến lược cố định. Thay vào đó, tỷ lệ kèo bóng đá 88 thói quen hỗ trợ của mỗi lớp toán tử giải thích tỷ lệ kèo bóng đá 88 số chiến lược theo định nghĩa của lớp vận hành.Bảng 36.6.

Bảng 36.6. Chiến lược điểm SP-Gist

Hoạt động số chiến lược
hoàn toàn bên trái của 1
hoàn toàn bên phải của 5
cùng 6
Chứa bởi 8
hoàn toàn bên dưới 10
nghiêm ngặt ở trên 11

tỷ lệ kèo bóng đá 88 chỉ mục Gin tương tự như tỷ lệ kèo bóng đá 88 chỉ mục GIST và SP-GIST, ở chỗ chúng cũng không có một tập hợp tỷ lệ kèo bóng đá 88 chiến lược cố định. Thay vào đó, tỷ lệ kèo bóng đá 88 thói quen hỗ trợ của mỗi lớp toán tử giải thích tỷ lệ kèo bóng đá 88 số chiến lược theo định nghĩa của lớp vận hành.Bảng 36.7.

Bảng 36.7. Chiến lược mảng gin

Hoạt động Số chiến lược
chồng chéo 1
chứa 2
được chứa bởi 3
bằng 4

24625_24929Minmaxtỷ lệ kèo bóng đá 88 lớp toán tử được hiển thị trongBảng 36.8.

Bảng 36.8. Chiến lược Brin Minmax

Hoạt động số chiến lược
ít hơn 1
nhỏ hơn hoặc bằng 2
bằng 3
lớn hơn hoặc bằng 4
lớn hơn 5

Lưu ý rằng tất cả tỷ lệ kèo bóng đá 88 toán tử được liệt kê trên tỷ lệ kèo bóng đá 88 giá trị boolean trả về. Trong thực tế, tất cả tỷ lệ kèo bóng đá 88 toán tử được xác định là toán tử tìm kiếm phương thức chỉ mục phải trả về loạiBoolean, vì chúng phải xuất hiện ở cấp cao nhất củaWHEREmệnh đề sẽ được sử dụng với một chỉ tỷ lệ kèo bóng đá 88. (Một số phương thức truy cập chỉ tỷ lệ kèo bóng đá 88 cũng hỗ trợtỷ lệ kèo bóng đá 88 toán tử đặt hàng, thường không trả về tỷ lệ kèo bóng đá 88 giá trị boolean; Tính năng đó được thảo luận trongPhần 36.16.7.)

36.16.3. Phương thức chỉ mục tỷ lệ kèo bóng đá 88 thói quen hỗ trợ#

Chiến lược thường không đủ thông tin để hệ thống tìm ra cách sử dụng chỉ mục. Trong thực tế, tỷ lệ kèo bóng đá 88 phương pháp chỉ mục yêu cầu tỷ lệ kèo bóng đá 88 thói quen hỗ trợ bổ sung để hoạt động.

Giống như tỷ lệ kèo bóng đá 88 chiến lược, lớp vận hành xác định tỷ lệ kèo bóng đá 88 chức năng cụ thể nào sẽ đóng mỗi vai trò này cho một loại dữ liệu nhất định và giải thích ngữ nghĩa. Phương thức chỉ mục xác định tập hợp tỷ lệ kèo bóng đá 88 chức năng cần thiết và lớp toán tử xác định tỷ lệ kèo bóng đá 88 chức năng chính xác để sử dụng bằng cách gán chúng choSố chức năng hỗ trợHồiĐược chỉ định bởi phương thức chỉ tỷ lệ kèo bóng đá 88.

Ngoài ra, một số OPClass cho phép người dùng chỉ định tỷ lệ kèo bóng đá 88 tham số kiểm soát hành vi của họ. Mỗi phương thức truy cập chỉ mục tích hợp có một tùy chọnTùy chọnHỗ trợ, xác định một tập hợp tỷ lệ kèo bóng đá 88 tham số dành riêng cho OPClass.

B-Trees yêu cầu chức năng hỗ trợ so sánh và cho phép bốn chức năng hỗ trợ bổ sung được cung cấp tại tùy chọn tác giả của lớp vận hành, như trongBảng 36.9. tỷ lệ kèo bóng đá 88 yêu cầu cho tỷ lệ kèo bóng đá 88 chức năng hỗ trợ này được giải thích thêm trongPhần 64.1.3.

Bảng 36.9. Chức năng hỗ trợ B-Tree

chức năng số hỗ trợ
29410_29578 1
Trả về địa chỉ của hàm hỗ trợ sắp xếp có thể gọi C (S) (tùy chọn) 2
So sánh giá trị kiểm tra với giá trị cơ sở cộng/trừ một phần bù và trả về đúng hoặc sai theo kết quả so sánh (tùy chọn) 3
Xác định xem có an toàn cho tỷ lệ kèo bóng đá 88 chỉ mục sử dụng lớp toán tử để áp dụng tối ưu hóa sao chép Btree (tùy chọn) 4
Xác định tỷ lệ kèo bóng đá 88 tùy chọn dành riêng cho lớp toán tử này (tùy chọn) 5

30439_30580Bảng 36.10.

Bảng 36.10. Chức năng hỗ trợ băm

chức năng số hỗ trợ
Tính giá trị băm 32 bit cho khóa 1
Tính giá trị băm 64 bit cho một khóa cho muối 64 bit; Nếu muối là 0, 32 bit thấp của kết quả phải khớp với giá trị sẽ được tính theo hàm 1 (tùy chọn) 2
Xác định tỷ lệ kèo bóng đá 88 tùy chọn dành riêng cho lớp toán tử này (tùy chọn) 3

31876_31961Bảng 36.11. (Để biết thêm thông tin, xemPhần 64.2.)

Bảng 36.11. Chức năng hỗ trợ GIST

function Mô tả Số hỗ trợ
nhất quán Xác định xem khóa có thỏa mãn vòng loại truy vấn 1
Liên minh Tính toán liên kết của một bộ khóa 2
nén Tính toán biểu diễn nén của khóa hoặc giá trị được lập chỉ tỷ lệ kèo bóng đá 88 (tùy chọn) 3
giải nén Tính toán biểu diễn được giải nén của khóa nén (tùy chọn) 4
hình phạt Tính hình phạt để chèn khóa mới vào Subtree với khóa của Subtree 5
PickSplit Xác định mục nhập của trang nào sẽ được chuyển đến trang mới và tính toán tỷ lệ kèo bóng đá 88 khóa liên minh cho tỷ lệ kèo bóng đá 88 trang kết quả 6
cùng So sánh hai khóa và trả về đúng nếu chúng bằng nhau 7
Khoảng cách Xác định khoảng cách từ khóa đến giá trị truy vấn (tùy chọn) 8
Fetch Tính toán biểu diễn ban đầu của khóa nén để quét chỉ có chỉ tỷ lệ kèo bóng đá 88 (tùy chọn) 9
Tùy chọn Xác định tỷ lệ kèo bóng đá 88 tùy chọn dành riêng cho lớp toán tử này (tùy chọn) 10
Sortsupport Cung cấp bộ so sánh sắp xếp được sử dụng trong tỷ lệ kèo bóng đá 88 bản dựng chỉ mục nhanh (tùy chọn) 11

SP-Gist Indexes có sáu chức năng hỗ trợ, một trong số đó là tùy chọn, như thể hiện trongBảng 36.12. (Để biết thêm thông tin, xemPhần 64.3.)

Bảng 36.12. tỷ lệ kèo bóng đá 88 chức năng hỗ trợ SP-Gist

function Mô tả số hỗ trợ
config Cung cấp thông tin cơ bản về lớp toán tử 1
Chọn Xác định cách chèn một giá trị mới vào một tuple bên trong 2
PickSplit Xác định cách phân vùng một tập hợp tỷ lệ kèo bóng đá 88 giá trị 3
Inside_consistent Xác định tỷ lệ kèo bóng đá 88 phần phụ nào cần được tìm kiếm để tìm kiếm truy vấn 4
Leaf_consistent Xác định xem khóa có thỏa mãn vòng loại truy vấn 5
Tùy chọn Xác định tỷ lệ kèo bóng đá 88 tùy chọn dành riêng cho lớp toán tử này (tùy chọn) 6

Chỉ tỷ lệ kèo bóng đá 88 GIN có bảy chức năng hỗ trợ, bốn trong số đó là tùy chọn, như trongBảng 36.13. (Để biết thêm thông tin, xemPhần 64.4.)

Bảng 36.13. Chức năng hỗ trợ Gin

function Mô tả Số hỗ trợ
so sánh 38508_38676 1
ExtractValue Trích xuất tỷ lệ kèo bóng đá 88 phím từ giá trị để được lập chỉ mục 2
Trích xuất Trích xuất phím từ điều kiện truy vấn 3
nhất quán 39196_39307 4
so sánhspartial So sánh khóa một phần từ truy vấn và khóa từ chỉ tỷ lệ kèo bóng đá 88 và trả về số nguyên nhỏ hơn 0, 0 hoặc lớn hơn 0, cho biết liệu GIN có nên bỏ qua tỷ lệ kèo bóng đá 88 nhập chỉ tỷ lệ kèo bóng đá 88 này hay không, hãy coi tỷ lệ kèo bóng đá 88 nhập là hoặc dừng quét chỉ tỷ lệ kèo bóng đá 88 (tùy chọn) 5
Triconsistent Xác định xem giá trị có khớp với điều kiện truy vấn hay không (biến thể ternary) (có chức năng hỗ trợ tùy chọn 4) 6
Tùy chọn Xác định tỷ lệ kèo bóng đá 88 tùy chọn dành riêng cho lớp toán tử này (tùy chọn) 7

Chỉ tỷ lệ kèo bóng đá 88 Brin có năm chức năng hỗ trợ cơ bản, một trong số đó là tùy chọn, như trongBảng 36,14. Một số phiên bản của tỷ lệ kèo bóng đá 88 chức năng cơ bản yêu cầu tỷ lệ kèo bóng đá 88 chức năng hỗ trợ bổ sung sẽ được cung cấp.Phần 64.5.3.)

Bảng 36,14. Chức năng hỗ trợ Brin

chức năng Mô tả Số hỗ trợ
opcinfo Trả về thông tin nội bộ mô tả dữ liệu tóm tắt của tỷ lệ kèo bóng đá 88 cột được lập chỉ mục 1
add_value Thêm giá trị mới vào một chỉ tỷ lệ kèo bóng đá 88 tóm tắt hiện có 2
nhất quán Xác định xem giá trị có khớp với điều kiện truy vấn 3
Liên minh Tính toán kết hợp của hai bộ dữ liệu tóm tắt 4
Tùy chọn Xác định tỷ lệ kèo bóng đá 88 tùy chọn dành riêng cho lớp toán tử này (tùy chọn) 5

Không giống như tỷ lệ kèo bóng đá 88 toán tử tìm kiếm, tỷ lệ kèo bóng đá 88 chức năng hỗ trợ trả về bất kỳ loại dữ liệu nào phương thức chỉ mục cụ thể mong đợi; Ví dụ, trong trường hợp hàm so sánh cho tỷ lệ kèo bóng đá 88 cây B, một số nguyên đã ký.

36.16.4. Một ví dụ#

Bây giờ chúng ta đã thấy tỷ lệ kèo bóng đá 88 ý tưởng, đây là ví dụ hứa hẹn về việc tạo ra một lớp toán tử mới. (Bạn có thể tìm thấy một bản sao làm việc của ví dụ này trongsrc/hướng dẫn/phức tạp.cSRC/Hướng dẫn/Complex.sqlTrong phân phối nguồn.) Lớp toán tử đóng gói tỷ lệ kèo bóng đá 88 toán tử sắp xếp tỷ lệ kèo bóng đá 88 số phức theo thứ tự giá trị tuyệt đối, vì vậy chúng tôi chọn tênComplex_abs_ops. Đầu tiên, chúng ta cần một bộ toán tử.Phần 36,14. Đối với một lớp toán tử trên B-Trees, tỷ lệ kèo bóng đá 88 toán tử chúng tôi yêu cầu là:

  • Tuyệt đối-giá trị ít hơn (Chiến lược 1)
  • 44135_44183
  • giá trị tuyệt đối bằng nhau (Chiến lược 3)
  • 44284_44335
  • Tuyệt đối-giá trị lớn hơn (Chiến lược 5)

Cách dễ bị lỗi nhất để xác định một bộ toán tử so sánh liên quan là viết hàm hỗ trợ so sánh B-cây trước, sau đó viết tỷ lệ kèo bóng đá 88 chức năng khác làm gói một dòng xung quanh chức năng hỗ trợ. Điều này làm giảm tỷ lệ nhận kết quả không nhất quán cho tỷ lệ kèo bóng đá 88 trường hợp ở góc.

#Define mag (c) ((c)- x*(c)- x + (c)- y*(c)- y)

Bây giờ chức năng ít hơn trông giống như:

pg_function_info_v1 (Complex_abs_lt);

Bốn hàm khác chỉ khác nhau trong cách chúng so sánh kết quả của hàm bên trong với số không.

Tiếp theo chúng tôi khai báo tỷ lệ kèo bóng đá 88 chức năng và toán tử dựa trên tỷ lệ kèo bóng đá 88 chức năng cho SQL:

Tạo chức năng Complex_abs_lt (phức tạp, phức tạp) Trả về BoolFileName',' Complex_abs_lt '

46052_46265

Những điều khác đáng chú ý đang xảy ra ở đây:

  • Chỉ có thể có một toán tử có tên, giả sử,=và lấy loạiphức tạpcho cả hai toán hạng. Trong trường hợp này, chúng tôi không có bất kỳ nhà điều hành nào khác=chophức tạp, nhưng nếu chúng ta đang xây dựng một loại dữ liệu thực tế, chúng ta có thể muốn=là hoạt động bình đẳng thông thường cho tỷ lệ kèo bóng đá 88 số phức (chứ không phải sự bình đẳng của tỷ lệ kèo bóng đá 88 giá trị tuyệt đối). Trong trường hợp đó, chúng tôi cần sử dụng một số tên toán tử khác choComplex_abs_eq.

  • mặc dùPOSTGRESQLCó thể đối phó với tỷ lệ kèo bóng đá 88 chức năng có cùng tên SQL miễn là chúng có tỷ lệ kèo bóng đá 88 loại dữ liệu đối số khác nhau, C chỉ có thể đối phó với một hàm toàn cầu có tên nhất định. Vì vậy, chúng ta không nên đặt tên cho chức năng c một cái gì đó đơn giản nhưabs_eq. Thông thường, đó là một thực tiễn tốt để bao gồm tên kiểu dữ liệu trong tên hàm C, để không xung đột với tỷ lệ kèo bóng đá 88 chức năng cho tỷ lệ kèo bóng đá 88 loại dữ liệu khác.

  • Chúng ta có thể đã tạo tên SQL của hàmabs_eq, dựa vàoPOSTGRESQLĐể phân biệt nó bằng tỷ lệ kèo bóng đá 88 loại dữ liệu đối số với bất kỳ hàm SQL nào khác cùng tên. Để giữ cho ví dụ đơn giản, chúng tôi làm cho chức năng có cùng tên ở cấp độ C và SQL.

Bước tiếp theo là đăng ký thói quen hỗ trợ theo yêu cầu của B-cây. Mã C ví dụ thực hiện đây là trong cùng một tệp chứa tỷ lệ kèo bóng đá 88 chức năng của toán tử.

Tạo chức năng Complex_ABS_CMP (phức tạp, phức tạp)FileName'

Bây giờ chúng tôi có tỷ lệ kèo bóng đá 88 toán tử và thói quen hỗ trợ cần thiết, cuối cùng chúng tôi cũng có thể tạo lớp toán tử:

Tạo lớp toán tử Complex_abs_ops

Và chúng tôi đã hoàn thành! Bây giờ có thể tạo và sử dụng tỷ lệ kèo bóng đá 88 chỉ mục B-cây trênphức tạpcột.

Chúng tôi có thể đã viết tỷ lệ kèo bóng đá 88 mục nhập của toán tử một cách rõ ràng hơn, như trong:

toán tử 1 <(phức tạp, phức tạp),

Nhưng không cần phải làm như vậy khi tỷ lệ kèo bóng đá 88 toán tử lấy cùng một loại dữ liệu, chúng tôi đang xác định lớp toán tử cho.

Ví dụ trên giả định rằng bạn muốn biến lớp toán tử mới này thành lớp toán tử B-cây mặc định chophức tạpKiểu dữ liệu. Nếu bạn không, chỉ cần bỏ đi từMặc định.

36.16.5. tỷ lệ kèo bóng đá 88 lớp vận hành và gia đình vận hành#

Cho đến nay chúng tôi đã ngầm giả định rằng một lớp toán tử chỉ xử lý một loại dữ liệu. Mặc dù chắc chắn chỉ có thể có một loại dữ liệu trong một cột chỉ mục cụ thể, nhưng thường rất hữu ích cho tỷ lệ kèo bóng đá 88 hoạt động lập chỉ mục so sánh một cột được lập chỉ mục với giá trị của một loại dữ liệu khác.

Để xử lý tỷ lệ kèo bóng đá 88 nhu cầu này,PostgreSQLSử dụng khái niệmGia đình vận hành. Một gia đình vận hành chứa một hoặc nhiều lớp toán tử và cũng có thể chứa tỷ lệ kèo bóng đá 88 toán tử có thể lập chỉ mục và tỷ lệ kèo bóng đá 88 chức năng hỗ trợ tương ứng thuộc về toàn bộ gia đình nhưng không phải là bất kỳ lớp nào trong gia đình.HồiLooseHồiTrong gia đình, trái ngược với việc bị ràng buộc vào một lớp cụ thể. Thông thường, mỗi lớp toán tử chứa tỷ lệ kèo bóng đá 88 toán tử loại dữ liệu đơn trong khi tỷ lệ kèo bóng đá 88 toán tử loại chéo bị lỏng trong gia đình.

Tất cả tỷ lệ kèo bóng đá 88 toán tử và chức năng trong họ toán tử phải có ngữ nghĩa tương thích, trong đó tỷ lệ kèo bóng đá 88 yêu cầu tương thích được đặt theo phương thức chỉ mục. Do đó, bạn có thể tự hỏi tại sao phải chỉ ra một tập hợp con cụ thể của gia đình dưới dạng tỷ lệ kèo bóng đá 88 lớp vận hành;

làm ví dụ,PostgreSQLCó gia đình vận hành B-Tree tích hợpInteger_ops, bao gồm tỷ lệ kèo bóng đá 88 lớp toán tửINT8_OPS, INT4_OPSINT2_OPScho tỷ lệ kèo bóng đá 88 chỉ mục trênBigint(INT8),Số nguyên(INT4) vàSmallInt(INT2) tỷ lệ kèo bóng đá 88 cột tương ứng. Gia đình cũng chứa tỷ lệ kèo bóng đá 88 toán tử so sánh loại dữ liệu chéo cho phép bất kỳ loại nào trong số tỷ lệ kèo bóng đá 88 loại này được so sánh, do đó có thể tìm kiếm một chỉ số trên một trong tỷ lệ kèo bóng đá 88 loại này bằng cách sử dụng giá trị so sánh của loại khác.

Tạo số nguyên gia đình của nhà điều hành bằng btree;

Lưu ý rằng định nghĩa nàyMạnhquá tảiKhănChiến lược vận hành và số chức năng hỗ trợ: Mỗi số xảy ra nhiều lần trong gia đình. Điều này được cho phép miễn là mỗi trường hợp của một số cụ thể có tỷ lệ kèo bóng đá 88 loại dữ liệu đầu vào riêng biệt.

56751_56865Phần 64.1.2. Đối với mỗi toán tử trong gia đình, phải có một chức năng hỗ trợ có cùng hai loại dữ liệu đầu vào là toán tử.

Để xây dựng một gia đình vận hành băm nhiều dữ liệu, tỷ lệ kèo bóng đá 88 chức năng hỗ trợ băm tương thích phải được tạo cho từng loại dữ liệu được hỗ trợ bởi gia đình. Ở đây khả năng tương thích có nghĩa là tỷ lệ kèo bóng đá 88 chức năng được đảm bảo trả về cùng một mã băm cho bất kỳ hai giá trị nào được coi là bằng nhau bởi tỷ lệ kèo bóng đá 88 toán tử bình đẳng của gia đình, ngay cả khi tỷ lệ kèo bóng đá 88 giá trị thuộc tỷ lệ kèo bóng đá 88 loại khác nhau.

GIST, SP-GIST và GIN chỉ mục không có bất kỳ khái niệm rõ ràng nào về tỷ lệ kèo bóng đá 88 hoạt động loại dữ liệu chéo. Tập hợp tỷ lệ kèo bóng đá 88 toán tử được hỗ trợ chỉ là bất cứ chức năng hỗ trợ chính nào cho một lớp toán tử nhất định có thể xử lý.

Trong Brin, tỷ lệ kèo bóng đá 88 yêu cầu phụ thuộc vào khung cung cấp tỷ lệ kèo bóng đá 88 lớp toán tử. Cho tỷ lệ kèo bóng đá 88 lớp toán tử dựa trênMinmax58778_58958

Lưu ý

trướcPOSTGRESQL8.3, không có khái niệm về tỷ lệ kèo bóng đá 88 họ vận hành, và do đó, bất kỳ toán tử loại dữ liệu chéo nào dự định sẽ được sử dụng với một chỉ mục phải được liên kết trực tiếp vào lớp toán tử của chỉ mục. Mặc dù cách tiếp cận này vẫn hoạt động, nhưng nó không được phản đối vì nó làm cho tỷ lệ kèo bóng đá 88 phụ thuộc của một chỉ mục quá rộng và vì người lập kế hoạch có thể xử lý tỷ lệ kèo bóng đá 88 so sánh loại dữ liệu chéo hiệu quả hơn khi cả hai loại dữ liệu đều có toán tử trong cùng một họ vận hành.

36.16.6. Phụ thuộc hệ thống vào tỷ lệ kèo bóng đá 88 lớp toán tử#

POSTGRESQLSử dụng tỷ lệ kèo bóng đá 88 lớp toán tử để suy ra tỷ lệ kèo bóng đá 88 thuộc tính của toán tử theo nhiều cách hơn là liệu chúng có thể được sử dụng với tỷ lệ kèo bóng đá 88 chỉ mục hay không. Do đó, bạn có thể muốn tạo tỷ lệ kèo bóng đá 88 lớp toán tử ngay cả khi bạn không có ý định lập chỉ mục bất kỳ cột nào trong kiểu dữ liệu của mình.

Đặc biệt, có tỷ lệ kèo bóng đá 88 tính năng SQL nhưĐặt hàng bởikhác biệtyêu cầu so sánh và sắp xếp tỷ lệ kèo bóng đá 88 giá trị. Để triển khai tỷ lệ kèo bóng đá 88 tính năng này trên kiểu dữ liệu do người dùng xác định,PostgreSQLTìm lớp toán tử B-cây mặc định cho kiểu dữ liệu. TheHồibằngKhănThành viên của lớp toán tử này xác định khái niệm của hệ thống về sự bình đẳng của tỷ lệ kèo bóng đá 88 giá trị choNhóm bởikhác biệtvà thứ tự sắp xếp được áp đặt bởi lớp toán tử xác định mặc địnhĐặt hàng bởiĐặt hàng.

Nếu không có lớp toán tử B-Tree mặc định cho kiểu dữ liệu, hệ thống sẽ tìm lớp toán tử băm mặc định. Nhưng vì loại lớp toán tử đó chỉ cung cấp sự bình đẳng, nên nó chỉ có thể hỗ trợ nhóm không sắp xếp.

Khi không có lớp toán tử mặc định cho kiểu dữ liệu, bạn sẽ gặp lỗi nhưKhông thể xác định toán tử đặt hàngNếu bạn cố gắng sử dụng tỷ lệ kèo bóng đá 88 tính năng SQL này với kiểu dữ liệu.

Lưu ý

inPOSTGRESQLPhiên bản trước 7.4, tỷ lệ kèo bóng đá 88 hoạt động sắp xếp và nhóm sẽ sử dụng tỷ lệ kèo bóng đá 88 toán tử có tên hoàn toàn=, <. Hành vi mới của việc dựa vào tỷ lệ kèo bóng đá 88 lớp toán tử mặc định tránh phải đưa ra bất kỳ giả định nào về hành vi của tỷ lệ kèo bóng đá 88 toán tử có tên cụ thể.

61862_61973sử dụngTùy chọn, ví dụ

Chọn * từ thứ tự myTable bằng somecol bằng cách sử dụng ~ <~;

Ngoài ra, chỉ định toán tử lớn hơn của lớp trongSử dụngChọn loại thứ tự giảm dần.

So sánh tỷ lệ kèo bóng đá 88 mảng thuộc loại do người dùng xác định cũng phụ thuộc vào ngữ nghĩa được xác định bởi lớp toán tử B-Tree mặc định của loại. Nếu không có lớp toán tử B-Tree mặc định, nhưng có lớp toán tử băm mặc định, thì sự bình đẳng mảng được hỗ trợ, nhưng không đặt hàng so sánh.

Một tính năng SQL khác đòi hỏi kiến ​​thức cụ thể theo loại dữ liệu hơn làphạm vi Offset trước/sauTùy chọn đóng khung cho tỷ lệ kèo bóng đá 88 chức năng cửa sổ (xemPhần 4.2.8). Đối với một truy vấn như

Chọn tổng (x) trên (thứ tự theo x phạm vi từ 5 trước và 10 sau)

Không đủ để biết đặt hàng theox; Cơ sở dữ liệu cũng phải hiểu cáchSubtract 5hoặcThêm 10với giá trị hàng hiện tại củaxĐể xác định giới hạn của khung cửa sổ hiện tại. So sánh giới hạn kết quả với tỷ lệ kèo bóng đá 88 giá trị của tỷ lệ kèo bóng đá 88 hàng khácxCó thể sử dụng tỷ lệ kèo bóng đá 88 toán tử so sánh được cung cấp bởi lớp toán tử B-cây xác địnhĐặt hàng bởiĐặt hàng - nhưng tỷ lệ kèo bóng đá 88 toán tử bổ sung và trừ không phải là một phần của lớp toán tử, vậy nên sử dụng cái nào? Khó khăn trong sự lựa chọn đó sẽ không mong muốn, bởi vì tỷ lệ kèo bóng đá 88 đơn đặt hàng sắp xếp khác nhau (tỷ lệ kèo bóng đá 88 lớp toán tử B-cây khác nhau) có thể cần hành vi khác nhau.in_rangeHỗ trợ chức năng gói gọn tỷ lệ kèo bóng đá 88 hành vi bổ sung và trừ có ý nghĩa đối với thứ tự sắp xếp của nó. Nó thậm chí có thể cung cấp nhiều hơn một chức năng hỗ trợ In_Range, trong trường hợp có nhiều loại dữ liệu có ý nghĩa khi sử dụng làm phần bù trongphạm vimệnh đề. Nếu lớp toán tử B-cây được liên kết với cửa sổĐặt hàng bởimệnh đề không có chức năng hỗ trợ In_range phù hợp,phạm vi Offset trước/sauTùy chọn không được hỗ trợ.

Một điểm quan trọng khác là một toán tử bình đẳng xuất hiện trong họ vận hành băm là một ứng cử viên cho tỷ lệ kèo bóng đá 88 lần tham gia băm, tổng hợp băm và tối ưu hóa liên quan. Họ vận hành băm rất cần thiết ở đây vì nó xác định (tỷ lệ kèo bóng đá 88) hàm băm để sử dụng.

36.16.7. tỷ lệ kèo bóng đá 88 toán tử đặt hàng#

Một số phương thức truy cập chỉ tỷ lệ kèo bóng đá 88 (hiện tại, chỉ có GIST và SP-GIST) hỗ trợ khái niệmtỷ lệ kèo bóng đá 88 toán tử đặt hàng. Những gì chúng ta đã thảo luận cho đến nay làtoán tử tìm kiếm. Toán tử tìm kiếm là một trong đó có thể tìm kiếm chỉ mục để tìm tất cả tỷ lệ kèo bóng đá 88 hàng thỏa mãnWHERE instioned_column Nhà điều hành hằng số. Lưu ý rằng không có gì được hứa hẹn về thứ tự mà tỷ lệ kèo bóng đá 88 hàng phù hợp sẽ được trả lại.Đặt hàng bởi instioned_column Nhà điều hành hằng số. Lý do để xác định tỷ lệ kèo bóng đá 88 toán tử đặt hàng theo cách đó là nó hỗ trợ tỷ lệ kèo bóng đá 88 tìm kiếm lân cận gần nhất, nếu toán tử là một trong những đo lường khoảng cách.

Chọn * Từ địa điểm đặt hàng theo vị trí <- điểm '(101,456)' giới hạn 10;

Tìm mười địa điểm gần nhất với một điểm tỷ lệ kèo bóng đá 88 tiêu nhất định. Chỉ tỷ lệ kèo bóng đá 88 GIST trên cột Vị trí có thể thực hiện điều này một cách hiệu quả vì<-là toán tử đặt hàng.

Trong khi tỷ lệ kèo bóng đá 88 toán tử tìm kiếm phải trả về kết quả boolean, tỷ lệ kèo bóng đá 88 toán tử đặt hàng thường trả về một số loại khác, chẳng hạn như float hoặc số cho khoảng cách. Loại này thường không giống như kiểu dữ liệu được lập chỉ mục.PostgreSQLlà khái niệm đặt hàng, vì vậy đây là một đại diện tự nhiên. Kể từ điểm<-Nhà điều hành trả vềfloat8, nó có thể được chỉ định trong lệnh tạo lớp toán tử như thế này:

toán tử 15 <- (điểm, điểm) cho thứ tự bởi float_ops

WHEREfloat_opslà họ toán tử tích hợp bao gồm tỷ lệ kèo bóng đá 88 hoạt động trênfloat8. Tuyên bố này nói rằng chỉ mục có thể trả về tỷ lệ kèo bóng đá 88 hàng theo thứ tự tăng giá trị của<-Nhà điều hành.

36.16.8. tỷ lệ kèo bóng đá 88 tính năng đặc biệt của tỷ lệ kèo bóng đá 88 lớp toán tử#

Có hai tính năng đặc biệt của tỷ lệ kèo bóng đá 88 lớp toán tử mà chúng ta chưa thảo luận, chủ yếu là vì chúng không hữu ích với tỷ lệ kèo bóng đá 88 phương thức chỉ mục được sử dụng phổ biến nhất.

Thông thường, khai báo một toán tử là thành viên của lớp toán tử (hoặc gia đình) có nghĩa là phương thức chỉ mục có thể lấy chính xác tập hợp tỷ lệ kèo bóng đá 88 hàng thỏa mãn AWHEREĐiều kiện sử dụng toán tử. Ví dụ:

Chọn * Từ bảng trong đó Integer_column <4;

Có thể được thỏa mãn chính xác bằng chỉ mục B-cây trên cột Số nguyên. Nhưng có những trường hợp chỉ số hữu ích như một hướng dẫn không chính xác cho tỷ lệ kèo bóng đá 88 hàng phù hợp.WHEREĐiều kiện kiểm tra sự chồng chéo giữa tỷ lệ kèo bóng đá 88 đối tượng không liên kết như đa giác. Tuy nhiên, chúng tôi có thể sử dụng chỉ mục để tìm tỷ lệ kèo bóng đá 88 đối tượng có hộp giới hạn chồng lên hộp giới hạn của đối tượng đích và sau đó chỉ thực hiện kiểm tra chồng chéo chính xác trên tỷ lệ kèo bóng đá 88 đối tượng được tìm thấy bởi chỉ mục.MấtĐối với người vận hành. tỷ lệ kèo bóng đá 88 tìm kiếm chỉ mục mất được thực hiện bằng cách để phương thức chỉ mục trả về ARecheckcờ khi một hàng có thể hoặc không thực sự thỏa mãn điều kiện truy vấn. Sau đó, hệ thống lõi sẽ kiểm tra điều kiện truy vấn ban đầu trên hàng truy xuất để xem liệu nó có nên được trả lại dưới dạng một trận đấu hợp lệ hay không.

Hãy xem xét lại tình huống chúng tôi đang lưu trữ trong chỉ tỷ lệ kèo bóng đá 88 chỉ có hộp giới hạn của một đối tượng phức tạp như đa giác. Trong trường hợp này, không có nhiều giá trị trong việc lưu trữ toàn bộ đa giác trong tỷ lệ kèo bóng đá 88 nhập chỉ tỷ lệ kèo bóng đá 88 - chúng ta cũng có thể lưu trữ chỉ một đối tượng đơn giản hơn của loạiBox. Tình huống này được thể hiện bởilưu trữTùy chọn trongTạo lớp toán tử: Chúng tôi sẽ viết một cái gì đó như:

Tạo lớp toán tử polygon_ops

70825_70900lưu trữLoại khác với kiểu dữ liệu cột. Ý chínhnéngiải néntỷ lệ kèo bóng đá 88 thói quen hỗ trợ phải đối phó với chuyển đổi loại dữ liệu khilưu trữđược sử dụng. Sp-gist tương tự như vậy yêu cầu mộtnénHỗ trợ chức năng chuyển đổi sang loại lưu trữ, khi điều đó khác nhau; Nếu opclass sp-gist cũng hỗ trợ truy xuất dữ liệu, chuyển đổi ngược phải được xử lý bởinhất quánHàm. Trong Gin,lưu trữLoại xác định loạiKeyKhăntỷ lệ kèo bóng đá 88 giá trị, thông thường khác với loại cột được lập chỉ mục-ví dụ, một lớp toán tử cho tỷ lệ kèo bóng đá 88 cột mảng nguyên có thể có tỷ lệ kèo bóng đá 88 khóa chỉ là số nguyên. GinExtractValueTrích xuấttỷ lệ kèo bóng đá 88 thói quen hỗ trợ chịu trách nhiệm trích xuất tỷ lệ kèo bóng đá 88 khóa từ tỷ lệ kèo bóng đá 88 giá trị được lập chỉ mục. Brin tương tự như Gin: Thelưu trữLoại xác định loại giá trị tóm tắt được lưu trữ và tỷ lệ kèo bóng đá 88 lớp hỗ trợ của tỷ lệ kèo bóng đá 88 lớp toán tử chịu trách nhiệm diễn giải chính xác tỷ lệ kèo bóng đá 88 giá trị tóm tắt.

Gửi hiệu chỉnh

Nếu bạn thấy bất cứ điều gì trong tài liệu không chính xác, không khớpMẫu nàyĐể báo cáo vấn đề tài liệu.