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

F.6. kèo bóng đá c1 - kèo bóng đá c1 Filter Index Phương thức truy cập#

kèo bóng đá c1Cung cấp kèo bóng đá c1 chỉ mục dựa trênBộ lọc kèo bóng đá c1.

Bộ lọc kèo bóng đá c1 là cấu trúc dữ liệu hiệu quả không gian được sử dụng để kiểm tra xem một phần tử có phải là thành viên của một bộ hay không. Trong trường hợp phương thức truy cập chỉ mục, nó cho phép loại trừ nhanh các bộ dữ liệu không phù hợp thông qua các chữ ký có kích thước được xác định khi tạo chỉ mục.

Chữ ký là một đại diện mất mát của (các) thuộc tính được lập chỉ mục, và như vậy có xu hướng báo cáo dương tính giả; that is, it may be reported that an element is in the set, when it is not.

Loại chỉ mục này hữu ích nhất khi bảng có nhiều thuộc tính và truy vấn kiểm tra các kết hợp tùy ý của chúng. Chỉ số Btree truyền thống nhanh hơn chỉ số kèo bóng đá c1, nhưng nó có thể yêu cầu nhiều chỉ mục Btree để hỗ trợ tất cả các truy vấn có thể có trong đó người ta chỉ cần một chỉ số kèo bóng đá c1 duy nhất.

F.6.1. Tham số#

Akèo bóng đá c1Index chấp nhận các tham số sau trongvớimệnh đề:

length

Độ dài của mỗi chữ ký (mục nhập chỉ mục) theo bit. Nó được làm tròn đến bội số gần nhất của16. Mặc định là80bit và tối đa là4096.

col1 - col32

Số lượng bit được tạo cho mỗi cột chỉ mục. Tên của mỗi tham số đề kèo bóng đá c1 đến số lượng cột chỉ mục mà nó kiểm soát.2bit và tối đa là4095. Tham số cho các cột chỉ mục không thực sự được sử dụng bị bỏ qua.

F.6.2. Ví dụ#

Đây là một ví dụ về việc tạo chỉ mục nở hoa:

Tạo chỉ mục BloomIDX trên tbloom bằng kèo bóng đá c1 (I1, I2, I3)

Chỉ mục được tạo với độ dài chữ ký là 80 bit, với các thuộc tính i1 và i2 được ánh xạ tới 2 bit và thuộc tính i3 được ánh xạ tới 4 bit. Chúng ta có thể đã bỏ qualength, col1col2Thông số kỹ thuật vì chúng có giá trị mặc định.

Đây là một ví dụ đầy đủ hơn về định nghĩa và cách sử dụng chỉ số kèo bóng đá c1, cũng như so sánh với các chỉ mục Btree tương đương. Chỉ số kèo bóng đá c1 nhỏ hơn đáng kể so với chỉ số Btree và có thể hoạt động tốt hơn.

=# Tạo bảng TBLOOM AS

Quét tuần tự trên bảng lớn này mất nhiều thời gian:

=# Giải thích Phân tích Chọn * từ tbloom trong đó i2 = 898732 và I5 = 123451;

Ngay cả với chỉ số Btree được xác định, kết quả vẫn sẽ là quét tuần tự:

=# Tạo chỉ mục btreeidx trên tbloom (i1, i2, i3, i4, i5, i6);

Có chỉ mục kèo bóng đá c1 được xác định trên bảng tốt hơn Btree trong việc xử lý loại tìm kiếm này:

=# Tạo chỉ mục bloomidx trên tbloom bằng kèo bóng đá c1 (I1, i2, i3, i4, i5, i6);

Bây giờ, vấn đề chính với tìm kiếm Btree là Btree không hiệu quả khi các điều kiện tìm kiếm không hạn chế (các) cột chỉ mục hàng đầu. Một chiến lược tốt hơn cho BTREE là tạo một chỉ mục riêng biệt trên mỗi cột.

=# Tạo chỉ mục btreeidx1 trên tbloom (i1);

Mặc dù truy vấn này chạy nhanh hơn nhiều so với một trong các chỉ mục duy nhất, chúng tôi phải trả một hình phạt về kích thước chỉ số. Mỗi chỉ số Btree một cột đơn chiếm 88,5 MB, do đó, tổng dung lượng cần thiết là 531 MB, trên ba lần không gian được sử dụng bởi Chỉ số kèo bóng đá c1.

F.6.3. Giao diện lớp toán tử#

Một lớp toán tử cho các chỉ mục kèo bóng đá c1 chỉ yêu cầu hàm băm cho kiểu dữ liệu được lập chỉ mục và toán tử bình đẳng để tìm kiếm. Ví dụ này hiển thị định nghĩa lớp toán tử choTextKiểu dữ liệu:

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

F.6.4. Hạn chế#

  • Chỉ các lớp toán tử choINT4Textđược bao gồm trong mô -đun.

  • chỉ=Nhà điều hành được hỗ trợ tìm kiếm. Nhưng có thể thêm hỗ trợ cho các mảng với các hoạt động liên minh và giao lộ trong tương lai.

  • kèo bóng đá c1kèo bóng đá c1 không hỗ trợđộc đáoINDEXES.

  • kèo bóng đá c1kèo bóng đá c1 không hỗ trợ tìm kiếmnullGiá trị.

F.6.5. Tác giả#

Teodor Sigaev, Postgres Professional, Moscow, Nga

Alexander Korotkov, Postgres Professional, Moscow, Nga

Oleg Bartunov, Postgres Professional, Moscow, Nga

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.