Phiên bản được hỗ trợ:hiện tại(17) /16 / 15 / 14 / 13
Phiên bản phát triển:18 / 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
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 chohiện tạiPhiên bản hoặc một trong cách đọc kèo bóng đá phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

11.9. cách đọc kèo bóng đá và toán tử Gia đình

Một định nghĩa chỉ số có thể chỉ địnhcách đọc kèo bóng đá toán tửĐối với mỗi cột của một chỉ mục.

Tạo chỉ mụctêntrênBảng(Cột opClass[Tùy chọn sắp xếp] [, ...]);

lớp toán tử xác định cách đọc kèo bóng đá toán tử được sử dụng bởi chỉ mục cho cột đó. Ví dụ: chỉ mục B-cây trên loạiINT4sẽ sử dụngINT4_OPSlớp; Lớp toán tử này bao gồm cách đọc kèo bóng đá hàm so sánh cho cách đọc kèo bóng đá giá trị của loạiINT4. Trong thực tế, lớp toán tử mặc định cho Kiểu dữ liệu của cột thường là đủ. Lý do chính cho Có cách đọc kèo bóng đá toán tử là đối với một số loại dữ liệu, có thể được nhiều hơn một hành vi chỉ số có ý nghĩa. Ví dụ, chúng tôi có thể muốn sắp xếp một loại dữ liệu số phức tạp theo giá trị tuyệt đối hoặc bởi phần thực sự. Chúng tôi có thể làm điều này bằng cách xác định hai toán tử cách đọc kèo bóng đá cho kiểu dữ liệu và sau đó chọn lớp thích hợp Khi làm một chỉ mục. Lớp toán tử xác định cơ bản Sắp xếp thứ tự (sau đó có thể được sửa đổi bằng cách thêm các tùy chọn sắp xếpASC/Descvà/hoặcNULLS đầu tiên/NULLS CUỐI CÙNG).

Ngoài ra còn có một số cách đọc kèo bóng đá toán tử tích hợp bên cạnh Những cái mặc định:

  • cách đọc kèo bóng đá toán tửtext_potype_ops, varchar_pattern_opsbpchar_pattern_ops12976_13021Text, Varcharchartương ứng. Sự khác biệt so với toán tử mặc định các lớp là các giá trị được so sánh đặc tính nghiêm ngặt bởi nhân vật hơn là theo địa phương cụ thể Quy tắc đối chiếu. Điều này làm cho cách đọc kèo bóng đá này phù hợp để sử dụng bởi các truy vấn liên quan đến các biểu thức khớp mẫu (nhưhoặc cách đọc kèo bóng đá biểu thức chính quy POSIX) Khi cơ sở dữ liệu không sử dụng tiêu chuẩn"C"Locale. Ví dụ, bạn có thể lập chỉ mục AVarcharCột như thế này:

    Tạo chỉ mục test_index trên test_table (col varchar_pattern_ops);

    Lưu ý rằng bạn cũng nên tạo một chỉ mục với mặc định lớp toán tử nếu bạn muốn cách đọc kèo bóng đá truy vấn liên quan đến thông thường<, <=, hoặc =14072_14138xxx_pattern_opscách đọc kèo bóng đá toán tử. (So ​​sánh bình đẳng thông thường có thể sử dụng các toán tử này Tuy nhiên, cách đọc kèo bóng đá.) Có thể tạo nhiều chỉ mục Trên cùng một cột với cách đọc kèo bóng đá toán tử khác nhau. Nếu bạn làm sử dụng locale c, bạn không cầnxxx_pattern_opscách đọc kèo bóng đá, Vì một chỉ mục với lớp toán tử mặc định có thể sử dụng được Đối với các truy vấn phù hợp với mẫu ở ngôn ngữ C.

Truy vấn sau đây hiển thị tất cả cách đọc kèo bóng đá toán tử được xác định:

Chọn Am.AmName dưới dạng index_method,
       opc.opcname dưới dạng opClass_name
    Từ pg_am am, pg_opclass opc
    Trong đó opc.opcmethod = am.oid
    Đặt hàng theo index_method, opClass_name;

Một cách đọc kèo bóng đá toán tử thực sự chỉ là một tập hợp con của một tập hợp con lớn hơn Cấu trúc được gọi làGia đình vận cách đọc kèo bóng đá. TRONG trường hợp một số loại dữ liệu có hành vi tương tự, nó là thường hữu ích để xác định các toán tử loại dữ liệu chéo và cho phép Chúng để làm việc với các chỉ mục. Để làm điều này, cách đọc kèo bóng đá toán tử cho Mỗi loại phải được nhóm thành cùng một họ vận hành. Các nhà khai thác loại chéo là thành viên của gia đình, nhưng không liên kết với bất kỳ lớp nào trong gia đình.

Truy vấn này hiển thị tất cả cách đọc kèo bóng đá họ toán tử được xác định và tất cả cách đọc kèo bóng đá nhà khai thác bao gồm trong mỗi gia đình:

Chọn Am.AmName dưới dạng index_method,
       opf.opfname dưới dạng opf Family_name,
       amop.amopopp :: Regoperator là Opf Family_Operator
    Từ pg_am am, pg_opf Family opf, pg_amop amop
    WHERE opf.opfmethod = am.oid và
          amop.amopf Family = opf.oid
    Đặt hàng theo index_method, opf Family_name, opf Family_operator;