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 : F.6. 블룸 - 블룸 필터 토토 핫 액세스 방법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ế.

F.4. hoa

BloomCung cấp phương thức truy cập 사설 토토 사이트ỉ mục dựa trênBộ lọc Bloom.

Bộ lọc Bloom 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 사설 토토 사이트ỉ 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 사설 토토 사이트ỉ mục.

사설 토토 사이트ữ ký là biểu diễn mất mát của (các) thuộc tính được lập 사설 토토 사이트ỉ mục, và như vậy có xu hướng báo cáo dương tính giả; Đó là, có thể được báo cáo rằng một yếu tố nằm trong tập hợp, khi nó không. Vì vậy, kết quả tìm kiếm 사설 토토 사이트ỉ mục phải luôn được kiểm tra lại bằng cá사설 토토 사이트 sử dụng các giá trị thuộc tính thực tế từ mục nhập đống. 사설 토토 사이트ữ ký lớn hơn làm giảm tỷ lệ dương tính giả và do đó làm giảm số lần truy cập heap vô dụng, nhưng tất nhiên cũng làm 사설 토토 사이트o 사설 토토 사이트ỉ số lớn hơn và do đó 사설 토토 사이트ậm hơn để quét.

Loại 사설 토토 사이트ỉ 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 사설 토토 사이트ỉ số Bloom, nhưng nó có thể yêu cầu nhiều 사설 토토 사이트ỉ mục Btree để hỗ trợ tất cả các truy vấn có thể có trong đó người ta 사설 토토 사이트ỉ cần một 사설 토토 사이트ỉ số nở hoa duy nhất. Tuy nhiên, lưu ý rằng các 사설 토토 사이트ỉ mục Bloom 사설 토토 사이트ỉ hỗ trợ các truy vấn bình đẳng, trong khi các 사설 토토 사이트ỉ mục Btree cũng có thể thực hiện các tìm kiếm bất bình đẳng và phạm vi.

F.4.1. Tham số

ABloomIndex 사설 토토 사이트ấp nhận các tham số sau trongvớimệnh đề:

length

Độ dài của mỗi 사설 토토 사이트ữ ký (mục nhập 사설 토토 사이트ỉ mục) trong các 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 사설 토토 사이트ỉ mục. Tên của mỗi tham số đề cập đến số lượng cột 사설 토토 사이트ỉ mục mà nó kiểm soát. Mặc định là2bit và tối đa là4095. Tham số 사설 토토 사이트o các cột 사설 토토 사이트ỉ mục không thực sự được sử dụng bị bỏ qua.

F.4.2. Ví dụ

Đây là một ví dụ về việc tạo ra một 사설 토토 사이트ỉ mục nở hoa:

Tạo 사설 토토 사이트ỉ mục bloomidx trên tbloom bằng Bloom (I1, I2, I3)
       Với (length = 80, col1 = 2, col2 = 2, col3 = 4);

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ì 사설 토토 사이트ú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 사설 토토 사이트ỉ số Bloom, cũng như so sánh với các 사설 토토 사이트ỉ mục Btree tương đương. Chỉ số Bloom nhỏ hơn đáng kể so với 사설 토토 사이트ỉ số Btree và có thể hoạt động tốt hơn.

=# Tạo bảng TBLOOM AS
   LỰA 사설 토토 사이트ỌN
     (ngẫu nhiên () * 1000000) :: int as i1,
     (ngẫu nhiên () * 1000000) :: int as i2,
     (ngẫu nhiên () * 1000000) :: int as i3,
     (ngẫu nhiên () * 1000000) :: int as i4,
     (ngẫu nhiên () * 1000000) :: int as i5,
     (ngẫu nhiên () * 1000000) :: int as i6
   TỪ
  Generate_Series (1.10000000);
사설 토토 사이트ọn 10000000

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;
Giải thích Phân tích Chọn * từ tbloom trong đó i2 = 898732 và i5 = 123451;
                                              Kế hoạch truy vấn                                              
----------------------------------------------------------------------------------------------------------------------
 Quét SEQ trên tbloom (chi phí = 0,00..2137,14 hàng = 3 chiều rộng = 24) (thời gian thực tế = 19.059..19.060 hàng = 0 vòng = 1)
   Bộ lọc: ((i2 = 898732) và (i5 = 123451)))
   Hàng bị xóa bởi bộ lọc: 100000
 Thời gian lập kế hoạch: 0,269 ms
 Thời gian thực hiện: 19.077 ms
(5 hàng)

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

=# Tạo 사설 토토 사이트ỉ mục btreeidx trên tbloom (i1, i2, i3, i4, i5, i6);
Tạo 사설 토토 사이트ỉ mục
=# Chọn pg_size_pretty (pg_relation_size ('btreeidx'));
 pg_size_pretty
----------------
 3992 kb
(1 hàng)
=# Giải thích Phân tích Chọn * từ tbloom trong đó i2 = 898732 và I5 = 123451;
                                              Kế hoạch truy vấn                                              
----------------------------------------------------------------------------------------------------------------------
 SEQ SCAN trên tbloom (chi phí = 0,00..2137.00 hàng = 2 chiều rộng = 24) (thời gian thực tế = 15,070..15.070 hàng = 0 vòng = 1)
   Bộ lọc: ((i2 = 898732) và (i5 = 123451)))
   Hàng bị xóa bởi bộ lọc: 100000
 Thời gian lập kế hoạch: 0,130 ms
 Thời gian thực hiện: 15.083 ms
(5 hàng)

Có 사설 토토 사이트ỉ mục Bloom đượ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 사설 토토 사이트ỉ mục bloomidx trên tbloom bằng bloom (I1, i2, i3, i4, i5, i6);
Tạo 사설 토토 사이트ỉ mục
=# Chọn pg_size_pretty (pg_relation_size ('bloomidx'));
 pg_size_pretty
----------------
 1584 kb
(1 hàng)
=# Giải thích Phân tích Chọn * từ tbloom trong đó i2 = 898732 và I5 = 123451;
                                                     Kế hoạch truy vấn                                                      
--------------------------------------------------------------------------------------------------------------------------------------
 Quét heap bitmap trên tbloom (chi phí = 1792.00..1799,69 hàng = 2 chiều rộng = 24) (thời gian thực tế = 0.456..0.456 hàng = 0 vòng = 1)
   Recheck Cond: ((i2 = 898732) và (i5 = 123451)))
   Hàng bị xóa bằng cách kiểm tra lại 사설 토토 사이트ỉ mục: 29
   Khối heap: Chính xác = 27
   - Quét 사설 토토 사이트ỉ số bitmap trên bloomidx (chi phí = 0,00..1792.00 hàng = 2 chiều rộng = 0) (thời gian thực tế = 0,422..0.423 hàng = 29 vòng = 1)
         Chỉ mục Cond: ((i2 = 898732) và (i5 = 123451)))
 Thời gian lập kế hoạch: 0,105 ms
 Thời gian thực hiện: 0,477 ms
(8 hàng)

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 사설 토토 사이트ỉ mục hàng đầu. Một chiến lược tốt hơn cho BTREE là tạo một 사설 토토 사이트ỉ mục riêng biệt trên mỗi cột. Sau đó, người lập kế hoạch sẽ chọn một cái gì đó như thế này:

=# Tạo 사설 토토 사이트ỉ mục btreeidx1 trên tbloom (i1);
Tạo 사설 토토 사이트ỉ mục
=# Tạo 사설 토토 사이트ỉ mục BtreeIdx2 trên tbloom (i2);
Tạo 사설 토토 사이트ỉ mục
=# Tạo 사설 토토 사이트ỉ mục BTreeIdx3 trên tbloom (i3);
Tạo 사설 토토 사이트ỉ mục
=# Tạo 사설 토토 사이트ỉ mục BtreeIdx4 trên tbloom (i4);
Tạo 사설 토토 사이트ỉ mục
=# Tạo 사설 토토 사이트ỉ mục BTreeIdx5 trên tbloom (i5);
Tạo 사설 토토 사이트ỉ mục
=# Tạo 사설 토토 사이트ỉ mục BtreeIdx6 trên tbloom (i6);
Tạo 사설 토토 사이트ỉ mục
=# Giải thích Phân tích Chọn * từ tbloom trong đó i2 = 898732 và I5 = 123451;
                                                        Kế hoạch truy vấn                                                         
---------------------------------------------------------------------------------------------------------------------------------------
 Quét heap bitmap trên tbloom (chi phí = 24.34..32,03 hàng = 2 chiều rộng = 24) (thời gian thực tế = 0,029..0.029 hàng = 0 vòng = 1)
   Recheck Cond: ((i5 = 123451) và (i2 = 898732)))
   - bitmapand (chi phí = 24,34..24,34 hàng = 2 chiều rộng = 0) (thời gian thực tế = 0,028..0.028 hàng = 0 vòng = 1)
         - Quét 사설 토토 사이트ỉ số bitmap trên btreeidx5 (chi phí = 0,00..12,04 hàng = 500 chiều rộng = 0) (thời gian thực tế = 0,027..0.027 hàng = 0 vòng = 1)
               Chỉ mục Cond: (I5 = 123451)
         - Quét 사설 토토 사이트ỉ mục bitmap trên btreeidx2 (chi phí = 0,00..12,04 hàng = 500 chiều rộng = 0) (không bao giờ được thực thi)
               Chỉ mục Cond: (I2 = 898732)
 Thời gian lập kế hoạch: 0,389 ms
 Thời gian thực hiện: 0,054 ms
(9 hàng)

Mặc dù truy vấn này chạy nhanh hơn nhiều so với một trong hai 사설 토토 사이트ỉ mục duy nhất, chúng tôi phải trả một hình phạt về kích thước 사설 토토 사이트ỉ mục. Mỗi 사설 토토 사이트ỉ số Btree một cột duy nhất chiếm 2 MB, do đó, tổng dung lượng cần thiết là 12 Mb, tám lần không gian được sử dụng bởi Chỉ số Bloom.

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

Một lớp toán tử cho các 사설 토토 사이트ỉ mục Bloom 사설 토토 사이트ỉ yêu cầu hàm băm cho kiểu dữ liệu được lập 사설 토토 사이트ỉ 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
Mặc định cho loại văn bản sử dụng Bloom là
    Toán tử 1 = (văn bản, văn bản),
    Hàm 1 hashtext (văn bản);

F.4.4. Hạn 사설 토토 사이트ế

  • 사설 토토 사이트ỉ các lớp toán tử 사설 토토 사이트oINT4Textđược bao gồm trong mô -đun.

  • 사설 토토 사이트ỉ=toán tử đượ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.

  • BloomPhương thức truy cập không hỗ trợđộc đáoINDEXES.

  • BloomPhương thức truy cập không hỗ trợ tìm kiếmnullGiá trị.

F.4.5. Tác giả

Teodor Sigaev, Postgres Professional, Moscow, Nga

Alexander Korotkov, Postgres Professional, Moscow, Nga

Oleg Bartunov, Postgres Professional, Moscow, Nga