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

64.5. BRIN INDEXES#

64.5.1. Giới thiệu#

Brinlà viết tắt của chỉ mục phạm vi khối.Brinđược thiết kế để xử lý cách đọc kèo bóng đá bảng rất lớn trong đó cách đọc kèo bóng đá cột nhất định có một số tương quan tự nhiên với vị trí vật lý của chúng trong bảng.

Brinhoạt động theo thuật ngữPhạm vi khối(hoặcHồiPhạm vi trangHồi). Phạm vi khối là một nhóm cách đọc kèo bóng đá trang nằm liền kề về mặt vật lý trong bảng;

Brin9569_9733nhất quánVới cách đọc kèo bóng đá điều kiện truy vấn. Người thực thi truy vấn chịu trách nhiệm kiểm tra lại cách đọc kèo bóng đá bộ dữ liệu này và loại bỏ những người không phù hợp với cách đọc kèo bóng đá điều kiện truy vấn - nói cách khác, cách đọc kèo bóng đá chỉ mục này là mất mát.BrinChỉ mục rất nhỏ, quét chỉ mục thêm ít chi phí so với quét tuần tự, nhưng có thể tránh quét cách đọc kèo bóng đá phần lớn của bảng được biết là không chứa cách đọc kèo bóng đá bộ dữ liệu phù hợp.

dữ cách đọc kèo bóng đá cụ thể mà ABrinIndex sẽ lưu trữ, cũng như cách đọc kèo bóng đá truy vấn cụ thể mà chỉ mục sẽ có thể đáp ứng, phụ thuộc vào lớp toán tử được chọn cho mỗi cột của chỉ mục. cách đọc kèo bóng đá loại dữ liệu có thứ tự sắp xếp tuyến tính có thể có cách đọc kèo bóng đá lớp toán tử lưu trữ giá trị tối thiểu và tối đa trong mỗi phạm vi khối;

Kích thước của phạm vi khối được xác định tại thời gian tạo chỉ mục bằngpages_per_rangeTham số lưu trữ. Số lượng mục nhập chỉ mục sẽ bằng kích thước của mối quan hệ trong cách đọc kèo bóng đá trang chia cho giá trị đã chọn chopages_per_range. Do đó, số lượng càng nhỏ, chỉ số càng lớn (vì cần lưu trữ nhiều mục chỉ mục hơn), nhưng đồng thời, dữ cách đọc kèo bóng đá tóm tắt được lưu trữ có thể chính xác hơn và có thể bỏ qua nhiều khối dữ cách đọc kèo bóng đá hơn trong quá trình quét chỉ mục.

64.5.1.1. Bảo trì chỉ mục#

Tại thời điểm tạo, tất cả cách đọc kèo bóng đá trang đống hiện có được quét và một bộ chỉ số tóm tắt được tạo cho từng phạm vi, bao gồm cả phạm vi có thể hoàn thành ở cuối. Vì cách đọc kèo bóng đá trang mới được lấp đầy với dữ liệu, cách đọc kèo bóng đá phạm vi trang đã được tóm tắt sẽ khiến thông tin tóm tắt được cập nhật với dữ liệu từ cách đọc kèo bóng đá bộ dữ liệu mới.

Có một số cách đọc kèo bóng đá để kích hoạt tóm tắt ban đầu của một phạm vi trang. Nếu bảng được hút bụi, bằng tay hoặc bằng cách đọc kèo bóng đáAutovacuum, tất cả cách đọc kèo bóng đá phạm vi trang không phân thủ hiện có được tóm tắt. Ngoài ra, nếu chỉ mụcAutosummarizeTham số được bật, không phải là mặc định, bất cứ khi nào Autovacuum chạy trong cơ sở dữ liệu đó, việc tóm tắt sẽ xảy ra đối với tất cả cách đọc kèo bóng đá phạm vi trang không phân thủ đã được điền, bất kể bản thân bảng có được xử lý bởi Autovacuum hay không; Xem bên dưới.

Cuối cùng, cách đọc kèo bóng đá chức năng sau có thể được sử dụng (trong khi cách đọc kèo bóng đá chức năng này chạy,search_pathđược thay đổi tạm thời thànhpg_catalog, pg_temp):

brin_summarize_new_values ​​(regclass)trong đó tóm tắt tất cả cách đọc kèo bóng đá phạm vi không phân thủ;
brin_summarize_range (regclass, bigint)chỉ tóm tắt phạm vi chứa trang đã cho, nếu nó không phân loại.

Khi tự động hóa được bật, yêu cầu được gửi đếnAutovacuumĐể thực hiện việc tóm tắt được nhắm mục tiêu cho phạm vi khối khi phát hiện thấy mục đầu tiên của trang đầu tiên của phạm vi khối tiếp theo, sẽ được thực hiện vào lần tiếp theo một công nhân tự động hoàn thành chạy trong cùng một cơ sở dữ cách đọc kèo bóng đá. Nếu hàng đợi yêu cầu đã đầy, yêu cầu không được ghi lại và tin nhắn được gửi đến nhật ký máy chủ:

Log: Yêu cầu Tóm tắt phạm vi Brin cho INDEX "brin_wi_idx" Trang 128 không được ghi lại

14024_14180

Ngược lại, một phạm vi có thể được khử trùng bằng cách đọc kèo bóng đá sử dụngbrin_desummarize_range (regclass, bigint)Hàm, rất hữu ích khi bộ chỉ số không còn là một biểu diễn rất tốt vì cách đọc kèo bóng đá giá trị hiện có đã thay đổi. Nhìn thấyPhần 9.28.8Để biết chi tiết.

64.5.2. cách đọc kèo bóng đá lớp toán tử tích hợp#

CorePostgreSQLPhân phối bao gồmBrincách đọc kèo bóng đá lớp toán tử hiển thị trongBảng 64.4.

TheMinmaxcách đọc kèo bóng đá lớp toán tử lưu trữ tối thiểu và cách đọc kèo bóng đá giá trị tối đa xuất hiện trong cột được lập chỉ mục trong phạm vi. TheBao gồmcách đọc kèo bóng đá lớp toán tử lưu trữ một giá trị bao gồm cách đọc kèo bóng đá giá trị trong cột được lập chỉ mục trong phạm vi. TheBloomcách đọc kèo bóng đá lớp toán tử Xây dựng bộ lọc Bloom cho tất cả cách đọc kèo bóng đá giá trị trong phạm vi. TheMinmax-Multicách đọc kèo bóng đá lớp toán tử lưu trữ nhiều giá trị tối thiểu và tối đa, biểu thị cách đọc kèo bóng đá giá trị xuất hiện trong cột được lập chỉ mục trong phạm vi.

Bảng 64.4. Tích hợpBrincách đọc kèo bóng đá lớp vận hành

tên Toán tử có thể lập chỉ mục
bit_minmax_ops = (bit, bit)
<(bit, bit)
(bit, bit)
<= (bit, bit)
= (bit, bit)
box_inclusion_ops @ (hộp, điểm)
<< (hộp, hộp)
& <(hộp, hộp)
& (hộp, hộp)
(hộp, hộp)
<@ (hộp, hộp)
@ (hộp, hộp)
~ = (hộp, hộp)
&& (hộp, hộp)
<< | (hộp, hộp)
& <| (hộp, hộp)
| & (hộp, hộp)
| (hộp, hộp)
bpchar_bloom_ops = (ký tự, ký tự)
bpchar_minmax_ops = (ký tự, ký tự)
<(ký tự, ký tự)
<= (ký tự)
(ký tự, ký tự)
= (ký tự, ký tự)
bytea_bloom_ops = (bytea, bytea)
bytea_minmax_ops = (bytea, bytea)
<(bytea, bytea)
<= (bytea, bytea)
(bytea, bytea)
= (bytea, bytea)
char_bloom_ops = ("char", "char")
char_minmax_ops = ("char", "char")
<("char", "char")
<= ("char", "char")
("Char", "Char")
= ("Char", "Char")
date_bloom_ops = (ngày, ngày)
date_minmax_ops = (ngày, ngày)
<(ngày, ngày)
<= (ngày, ngày)
(ngày, ngày)
= (ngày, ngày)
date_minmax_multi_ops = (ngày, ngày)
<(ngày, ngày)
<= (ngày, ngày)
(ngày, ngày)
= (ngày, ngày)
float4_bloom_ops = (float4, float4)
float4_minmax_ops = (float4, float4)
<(float4, float4)
(float4, float4)
<= (float4, float4)
= (float4, float4)
float4_minmax_multi_ops = (float4, float4)
<(float4, float4)
(float4, float4)
<= (float4, float4)
= (float4, float4)
float8_bloom_ops = (float8, float8)
float8_minmax_ops = (float8, float8)
<(float8, float8)
<= (float8, float8)
(float8, float8)
= (float8, float8)
float8_minmax_multi_ops = (float8, float8)
<(float8, float8)
<= (float8, float8)
(float8, float8)
= (float8, float8)
inet_inclusion_ops << (inet, inet)
<< = (inet, inet)
(inet, inet)
= (inet, inet)
= (inet, inet)
&& (inet, inet)
inet_bloom_ops = (inet, inet)
INET_MINMAX_OPS = (inet, inet)
<(inet, inet)
<= (inet, inet)
(inet, inet)
= (inet, inet)
inet_minmax_multi_ops = (inet, inet)
<(inet, inet)
<= (inet, inet)
(inet, inet)
= (inet, inet)
int2_bloom_ops = (int2, int2)
INT2_MINMAX_OPS = (int2, int2)
<(int2, int2)
(int2, int2)
<= (int2, int2)
= (int2, int2)
INT2_MINMAX_MULTI_OPS = (int2, int2)
<(int2, int2)
(int2, int2)
<= (int2, int2)
= (int2, int2)
int4_bloom_ops = (int4, int4)
INT4_MINMAX_OPS = (int4, int4)
<(int4, int4)
(int4, int4)
<= (int4, int4)
= (int4, int4)
INT4_MINMAX_MULTI_OPS = (int4, int4)
<(int4, int4)
(int4, int4)
<= (int4, int4)
= (int4, int4)
int8_bloom_ops = (Bigint, Bigint)
INT8_MINMAX_OPS = (Bigint, Bigint)
<(Bigint, Bigint)
(Bigint, Bigint)
<= (BIGINT, BIGINT)
= (Bigint, Bigint)
INT8_MINMAX_MULTI_OPS = (Bigint, Bigint)
<(Bigint, Bigint)
(Bigint, Bigint)
<= (Bigint, Bigint)
= (BIGINT, BIGINT)
interval_bloom_ops = (khoảng thời gian, khoảng thời gian)
interval_minmax_ops = (khoảng thời gian, khoảng thời gian)
<(khoảng thời gian, khoảng thời gian)
<= (khoảng thời gian, khoảng thời gian)
(khoảng thời gian, khoảng thời gian)
= (khoảng thời gian, khoảng thời gian)
interval_minmax_multi_ops = (khoảng thời gian, khoảng thời gian)
<(khoảng thời gian, khoảng thời gian)
<= (khoảng thời gian, khoảng thời gian)
(khoảng thời gian, khoảng thời gian)
= (khoảng thời gian, khoảng thời gian)
macaddr_bloom_ops = (macaddr, macaddr)
macaddr_minmax_ops = (macaddr, macaddr)
<(macaddr, macaddr)
<= (macaddr, macaddr)
(macaddr, macaddr)
= (macaddr, macaddr)
macaddr_minmax_multi_ops = (macaddr, macaddr)
<(macaddr, macaddr)
<= (macaddr, macaddr)
(macaddr, macaddr)
= (macaddr, macaddr)
macaddr8_bloom_ops = (macaddr8, macaddr8)
macaddr8_minmax_ops = (macaddr8, macaddr8)
<(macaddr8, macaddr8)
<= (macaddr8, macaddr8)
(macaddr8, macaddr8)
= (macaddr8, macaddr8)
macaddr8_minmax_multi_ops = (macaddr8, macaddr8)
<(macaddr8, macaddr8)
<= (macaddr8, macaddr8)
(macaddr8, macaddr8)
= (macaddr8, macaddr8)
name_bloom_ops = (tên, tên)
name_minmax_ops = (tên, tên)
<(tên, tên)
<= (tên, tên)
(tên, tên)
= (tên, tên)
numeric_bloom_ops = (số, số)
numeric_minmax_ops = (số, số)
<(số, số)
<= (số, số)
(số, số)
= (số, số)
numeric_minmax_multi_ops = (số, số)
<(số, số)
<= (số, số)
(số, số)
= (số, số)
oid_bloom_ops = (oid, oid)
OID_MINMAX_OPS = (oid, oid)
<(oid, oid)
(oid, oid)
<= (oid, oid)
= (oid, oid)
OID_MINMAX_MULTI_OPS = (oid, oid)
<(oid, oid)
(oid, oid)
<= (oid, oid)
= (oid, oid)
PG_LSN_BLOOM_OPS = (pg_lsn, pg_lsn)
PG_LSN_MINMAX_OPS = (pg_lsn, pg_lsn)
<(pg_lsn, pg_lsn)
(pg_lsn, pg_lsn)
<= (pg_lsn, pg_lsn)
= (pg_lsn, pg_lsn)
PG_LSN_MINMAX_MULTI_OPS = (pg_lsn, pg_lsn)
<(pg_lsn, pg_lsn)
(pg_lsn, pg_lsn)
<= (pg_lsn, pg_lsn)
= (pg_lsn, pg_lsn)
Range_inclusion_ops = (Anyrange, Anyrange)
<(Anyrange, Anyrange)
<= (Anyrange, Anyrange)
= (Anyrange, Anyrange)
(Anyrange, Anyrange)
&& (Anyrange, Anyrange)
@ (Anyrange, AnyEuity)
@ (Anyrange, Anyrange)
<@ (Anyrange, Anyrange)
<< (Anyrange, Anyrange)
(Anyrange, Anyrange)
& <(Anyrange, Anyrange)
& (Anyrange, Anyrange)
- |- (Anyrange, Anyrange)
text_bloom_ops = (văn bản, văn bản)
text_minmax_ops = (văn bản, văn bản)
<(văn bản, văn bản)
<= (văn bản, văn bản)
(văn bản, văn bản)
= (văn bản, văn bản)
TID_BLOOM_OPS = (tid, tid)
TID_MINMAX_OPS = (tid, tid)
<(tid, tid)
(tid, tid)
<= (tid, tid)
= (tid, tid)
TID_MINMAX_MULTI_OPS = (tid, tid)
<(tid, tid)
(tid, tid)
<= (tid, tid)
= (tid, tid)
Timestamp_bloom_ops = (dấu thời gian, dấu thời gian)
Timestamp_MinMax_ops = (dấu thời gian, dấu thời gian)
<(Timestamp, Timestamp)
<= (dấu thời gian, dấu thời gian)
(dấu thời gian, dấu thời gian)
= (dấu thời gian, dấu thời gian)
Timestamp_MinMax_Multi_ops = (dấu thời gian, dấu thời gian)
<(Timestamp, Timestamp)
<= (dấu thời gian, dấu thời gian)
(dấu thời gian, dấu thời gian)
= (dấu thời gian, dấu thời gian)
Timestampz_bloom_ops = (TIMESTAMPTZ, TIMESTAMPTZ)
TIMESTAMPTZ_MINMAX_OPS = (TIMESTAMPTZ, TIMESTAMPTZ)
<(TIMESTAMPTZ, TIMESTAMPTZ)
<= (TIMESTAMPTZ, TIMESTAMPTZ)
(TIMESTAMPTZ, TIMESTAMPTZ)
= (TIMESTAMPTZ, TIMESTAMPTZ)
TIMESTAMPTZ_MINMAX_MULTI_OPS = (TIMESTAMPTZ, TIMESTAMPTZ)
<(TIMESTAMPTZ, TIMESTAMPTZ)
<= (TIMESTAMPTZ, TIMESTAMPTZ)
(TIMESTAMPTZ, TIMESTAMPTZ)
= (Timestampptz, Timestamptz)
time_bloom_ops = (thời gian, thời gian)
time_minmax_ops = (thời gian, thời gian)
<(Thời gian, thời gian)
<= (thời gian, thời gian)
(thời gian, thời gian)
= (thời gian, thời gian)
time_minmax_multi_ops = (thời gian, thời gian)
<(thời gian, thời gian)
<= (thời gian, thời gian)
(thời gian, thời gian)
= (thời gian, thời gian)
Timetz_Bloom_ops = (Timetz, Timetz)
Timetz_MinMax_ops = (Timetz, Timetz)
<(Timetz, Timetz)
<= (Timetz, Timetz)
(Timetz, Timetz)
= (Timetz, Timetz)
Timetz_MinMax_Multi_ops = (Timetz, Timetz)
<(Timetz, Timetz)
<= (Timetz, Timetz)
(Timetz, Timetz)
= (Timetz, Timetz)
UUID_BLOOM_OPS = (UUID, UUID)
UUID_MINMAX_OPS = (UUID, UUID)
<(UUID, UUID)
(UUID, UUID)
<= (UUID, UUID)
= (UUID, UUID)
UUID_MINMAX_MULTI_OPS = (UUID, UUID)
<(UUID, UUID)
(UUID, UUID)
<= (UUID, UUID)
= (UUID, UUID)
varbit_minmax_ops = (varbit, varbit)
<(Varbit, Varbit)
(Varbit, Varbit)
<= (varbit, varbit)
= (varbit, varbit)

64.5.2.1. Tham số lớp toán tử#

Một số lớp toán tử tích hợp cho phép chỉ định cách đọc kèo bóng đá tham số ảnh hưởng đến hành vi của lớp toán tử. Mỗi lớp toán tử có bộ tham số được phép riêng.BloomMinmax-Multicách đọc kèo bóng đá lớp toán tử cho phép chỉ định tham số:

cách đọc kèo bóng đá lớp toán tử Bloom Chấp nhận cách đọc kèo bóng đá tham số sau:

N_DISTINC_PER_RANGE

Xác định số lượng giá trị không null khác biệt trong phạm vi khối, được sử dụng bởiBrinBloom Indexes để định cỡ bộ lọc Bloom. Nó hoạt động tương tự nhưn_distinceTùy chọn choBảng thay đổi. Khi được đặt thành một giá trị dương, mỗi phạm vi khối được giả sử chứa số lượng giá trị không null riêng biệt này.-0.1và số lượng tối thiểu của cách đọc kèo bóng đá giá trị không có null riêng biệt là16.

false_positive_rate

Xác định tỷ lệ dương tính giả mong muốn được sử dụng bởiBrinBloom Indexes để định cỡ bộ lọc Bloom. cách đọc kèo bóng đá giá trị phải nằm trong khoảng từ 0,0001 đến 0,25.

cách đọc kèo bóng đá lớp toán tử Minmax-Multi Chấp nhận cách đọc kèo bóng đá tham số sau:

value_per_range

Xác định số lượng giá trị tối đa được lưu trữ bởiBrinMinmax chỉ mục để tóm tắt phạm vi khối. Mỗi giá trị có thể đại diện cho một điểm hoặc một ranh giới của một khoảng.

64.5.3. Khả năng mở rộng#

TheBrinGiao diện có mức độ trừu tượng cao, yêu cầu người thực hiện phương thức truy cập chỉ để thực hiện ngữ nghĩa của kiểu dữ cách đọc kèo bóng đá được truy cập. TheBrinBản thân lớp chăm sóc sự đồng thời, ghi nhật ký và tìm kiếm cấu trúc chỉ mục.

Tất cả những gì cần thiết để có đượcBrinPhương pháp truy cập làm việc là thực hiện một số phương thức do người dùng xác định, xác định hành vi của cách đọc kèo bóng đá giá trị tóm tắt được lưu trữ trong chỉ mục và cách chúng tương tác với cách đọc kèo bóng đá khóa quét. Tóm lại,BrinKết hợp độ mở rộng với tính tổng quát, tái sử dụng mã và giao diện sạch.

Có bốn phương thức mà một lớp toán tử choBrinPhải cung cấp:

brinopcinfo *opcinfo (oid type_oid)

Trả về thông tin nội bộ về dữ liệu tóm tắt của cách đọc kèo bóng đá cột được lập chỉ mục. Giá trị trả về phải trỏ đến palloc'dBrinopcinfo, có định nghĩa này:

Typedef Struct Brinopcinfo

Brinopcinfo.oi_opaqueCó thể được sử dụng bởi cách đọc kèo bóng đá thói quen của lớp vận hành để truyền thông tin giữa cách đọc kèo bóng đá chức năng hỗ trợ trong quá trình quét chỉ mục.

58334_58414

58458_58729NKEYStham số.

58845_58912

58956_59178

59249_59328

Cho một bộ chỉ số và giá trị được lập chỉ mục, sửa đổi thuộc tính được chỉ định của bộ tuple để nó đại diện cho giá trị mới. Nếu bất kỳ sửa đổi nào được thực hiện thành tuple,TRUEđược trả về.

Hợp nhất hai tổng chỉ mục. Cho hai bộ dữ cách đọc kèo bóng đá chỉ mục, sửa đổi thuộc tính được chỉ định của đầu tiên trong số chúng để nó đại diện cho cả hai bộ dữ cách đọc kèo bóng đá.

Lớp toán tử choBrinCó thể chỉ định phương thức sau:

Tùy chọn void (local_relopts *relopts)

Xác định một tập hợp cách đọc kèo bóng đá tham số có thể nhìn thấy người dùng có thể điều khiển hành vi của lớp toán tử.

TheTùy chọnHàm được chuyển một con trỏ đến Alocal_reloptsStruct, cần được lấp đầy với một tập hợp cách đọc kèo bóng đá tùy chọn cụ thể của lớp vận hành. cách đọc kèo bóng đá tùy chọn có thể được truy cập từ cách đọc kèo bóng đá chức năng hỗ trợ khác bằng cách sử dụngPG_HAS_OPCLASS_OPTES ()PG_GET_OPCLASS_OPTES ()Macros.

Vì cả hai trích xuất chính của cách đọc kèo bóng đá giá trị được lập chỉ mục và biểu diễn của khóa trongBrinlà linh hoạt, chúng có thể phụ thuộc vào cách đọc kèo bóng đá tham số do người dùng chỉ định.

Phân phối cốt lõi bao gồm hỗ trợ cho bốn loại lớp vận hành: Minmax, Minmax-Multi, Inclusion và Bloom. cách đọc kèo bóng đá định nghĩa của lớp toán tử sử dụng chúng được vận chuyển cho cách đọc kèo bóng đá loại dữ liệu trong core khi thích hợp.

cách đọc kèo bóng đá lớp toán tử thực hiện cách đọc kèo bóng đá ngữ nghĩa hoàn toàn khác nhau cũng có thể, với điều kiện triển khai của bốn chức năng hỗ trợ chính được mô tả ở trên được viết. Lưu ý rằng khả năng tương thích ngược trên cách đọc kèo bóng đá bản phát hành chính không được đảm bảo: ví dụ, cách đọc kèo bóng đá chức năng hỗ trợ bổ sung có thể được yêu cầu trong cách đọc kèo bóng đá bản phát hành sau.

61917_62103Bảng 64.5. Tất cả cách đọc kèo bóng đá thành viên của lớp toán tử (chức năng và toán tử) là bắt buộc.

Bảng 64.5. Chức năng và số hỗ trợ cho cách đọc kèo bóng đá lớp toán tử minmax

Thành viên lớp vận cách đọc kèo bóng đá Đối tượng
Hỗ trợ chức năng 1 Hàm nội bộbrin_minmax_opcinfo ()
Hỗ trợ chức năng 2 Hàm nội bộbrin_minmax_add_value ()
Hỗ trợ chức năng 3 Hàm nội bộbrin_minmax_consistent ()
Hỗ trợ chức năng 4 Hàm nội bộbrin_minmax_union ()
Chiến lược vận cách đọc kèo bóng đá 1 Nhà điều cách đọc kèo bóng đá ít hơn
Chiến lược vận cách đọc kèo bóng đá 2 Nhà điều cách đọc kèo bóng đá ít hơn hoặc không bằng nhau để
Chiến lược vận cách đọc kèo bóng đá 3 Nhà điều cách đọc kèo bóng đá bằng
Chiến lược vận cách đọc kèo bóng đá 4 Nhà điều cách đọc kèo bóng đá Greater-So-Or-Equal-to
Chiến lược vận cách đọc kèo bóng đá 5 Nhà điều cách đọc kèo bóng đá Greater-so với

Để viết một lớp toán tử cho một loại dữ liệu phức tạp có cách đọc kèo bóng đá giá trị bao gồm trong một loại khác, có thể sử dụng cách đọc kèo bóng đá hàm hỗ trợ bao gồm cùng với cách đọc kèo bóng đá toán tử tương ứng, như thể hiện trongBảng 64.6. Nó chỉ yêu cầu một chức năng bổ sung, có thể được viết bằng bất kỳ ngôn ngữ nào.

Bảng 64.6. Chức năng và số hỗ trợ cho cách đọc kèo bóng đá lớp toán tử bao gồm

Thành viên lớp vận cách đọc kèo bóng đá Đối tượng phụ thuộc
Hỗ trợ chức năng 1 Hàm nội bộbrin_inclusion_opcinfo ()
Hỗ trợ chức năng 2 Hàm nội bộbrin_inclusion_add_value ()
Hỗ trợ chức năng 3 Hàm nội bộbrin_inclusion_consistent ()
Hỗ trợ chức năng 4 Hàm nội bộbrin_inclusion_union ()
Hỗ trợ chức năng 11 hàm để hợp nhất hai phần tử
Hỗ trợ chức năng 12 Hàm tùy chọn để kiểm tra xem hai phần tử có phải được hợp nhất không
Hỗ trợ chức năng 13 Hàm tùy chọn để kiểm tra xem một phần tử có được chứa trong một phần tử khác
Hỗ trợ chức năng 14 Hàm tùy chọn để kiểm tra xem một phần tử có trống không
Chiến lược vận cách đọc kèo bóng đá 1 Nhà điều cách đọc kèo bóng đá trái của Chiến lược vận cách đọc kèo bóng đá 4
Chiến lược vận cách đọc kèo bóng đá 2 67461_67503 Chiến lược vận cách đọc kèo bóng đá 5
Chiến lược vận cách đọc kèo bóng đá 3 Nhà điều cách đọc kèo bóng đá chồng chéo
Chiến lược vận cách đọc kèo bóng đá 4 Nhà điều cách đọc kèo bóng đá không-không mở rộng để-bên trái Chiến lược vận cách đọc kèo bóng đá 1
Chiến lược vận cách đọc kèo bóng đá 5 Nhà điều cách đọc kèo bóng đá phải-của Chiến lược vận cách đọc kèo bóng đá 2
Chiến lược vận cách đọc kèo bóng đá 6, 18 Nhà điều cách đọc kèo bóng đá cùng hoặc không bình đẳng với Chiến lược vận cách đọc kèo bóng đá 7
Chiến lược vận cách đọc kèo bóng đá 7, 16, 24, 25 Toán tử chứa hoặc không bình đẳng để
Chiến lược vận cách đọc kèo bóng đá 8, 26, 27 Nhà điều cách đọc kèo bóng đá có chứa bằng hoặc không bình đẳng để Chiến lược vận cách đọc kèo bóng đá 3
Chiến lược vận cách đọc kèo bóng đá 9 Nhà điều cách đọc kèo bóng đá không-extend-above Chiến lược vận cách đọc kèo bóng đá 11
Chiến lược vận cách đọc kèo bóng đá 10 Nhà điều cách đọc kèo bóng đá là-Below Chiến lược vận cách đọc kèo bóng đá 12
Chiến lược vận cách đọc kèo bóng đá 11 toán tử is-above Chiến lược vận cách đọc kèo bóng đá 9
Chiến lược vận cách đọc kèo bóng đá 12 Nhà điều cách đọc kèo bóng đá không-không mở rộng-Below Chiến lược vận cách đọc kèo bóng đá 10
Chiến lược vận cách đọc kèo bóng đá 20 Nhà điều cách đọc kèo bóng đá ít hơn Chiến lược vận cách đọc kèo bóng đá 5
Chiến lược vận cách đọc kèo bóng đá 21 Nhà điều cách đọc kèo bóng đá ít hơn hoặc không bình đẳng để Chiến lược vận cách đọc kèo bóng đá 5
Chiến lược vận cách đọc kèo bóng đá 22 Nhà điều cách đọc kèo bóng đá Greater-so với Chiến lược vận cách đọc kèo bóng đá 1
Chiến lược vận cách đọc kèo bóng đá 23 Nhà điều cách đọc kèo bóng đá Greater-OF-Equal-to Chiến lược vận cách đọc kèo bóng đá 1

Hỗ trợ Số chức năng từ 1 đến 10 được dành riêng cho cách đọc kèo bóng đá hàm bên trong Brin, do đó, cách đọc kèo bóng đá hàm cấp SQL bắt đầu với số 11. Hỗ trợ chức năng số 11 là chức năng chính cần thiết để xây dựng chỉ mục. Nó sẽ chấp nhận hai đối số với cùng loại dữ liệu với lớp toán tử và trả về sự kết hợp của chúng.lưu trữtham số. Giá trị trả về của hàm liên minh sẽ khớp vớilưu trữKiểu dữ cách đọc kèo bóng đá.

Hỗ trợ Số chức năng 12 và 14 được cung cấp để hỗ trợ cách đọc kèo bóng đá loại dữ liệu tích hợp. Chức năng số 12 được sử dụng để hỗ trợ cách đọc kèo bóng đá địa chỉ mạng từ cách đọc kèo bóng đá gia đình khác nhau không được hợp nhất.

Để viết một lớp toán tử cho một loại dữ liệu chỉ thực hiện một toán tử bình đẳng và hỗ trợ băm, có thể sử dụng cách đọc kèo bóng đá quy trình hỗ trợ Bloom cùng với cách đọc kèo bóng đá toán tử tương ứng, như trongBảng 64.7. Tất cả cách đọc kèo bóng đá thành viên của lớp vận hành (thủ tục và toán tử) là bắt buộc.

Bảng 64.7. Quy trình và số hỗ trợ cho cách đọc kèo bóng đá lớp toán tử Bloom

Thành viên lớp vận cách đọc kèo bóng đá Đối tượng
Quy trình hỗ trợ 1 Hàm nội bộbrin_bloom_opcinfo ()
Quy trình hỗ trợ 2 Hàm nội bộbrin_bloom_add_value ()
Quy trình hỗ trợ 3 Hàm nội bộbrin_bloom_consistent ()
Quy trình hỗ trợ 4 Hàm nội bộbrin_bloom_union ()
Quy trình hỗ trợ 5 Hàm nội bộbrin_bloom_options ()
Quy trình hỗ trợ 11 hàm để tính toán băm của một phần tử
Chiến lược vận cách đọc kèo bóng đá 1 Nhà điều cách đọc kèo bóng đá bằng

Quy trình hỗ trợ Số 1-10 được dành riêng cho cách đọc kèo bóng đá chức năng nội bộ của Brin, do đó, cách đọc kèo bóng đá chức năng cấp SQL bắt đầu với số 11. Hỗ trợ chức năng số 11 là chức năng chính cần thiết để xây dựng chỉ mục. Nó sẽ chấp nhận một đối số với cùng loại dữ liệu với lớp toán tử và trả về băm của giá trị.

Lớp toán tử Minmax-Multi cũng được dành cho cách đọc kèo bóng đá loại dữ liệu thực hiện một tập hợp hoàn toàn được đặt hàng và có thể được xem là một phần mở rộng đơn giản của lớp toán tử MinMax. Trong khi lớp toán tử MinMax tóm tắt cách đọc kèo bóng đá giá trị từ mỗi phạm vi khối thành một khoảng liên tục duy nhất, MinMax-Multi cho phép tóm tắt thành nhiều khoảng thời gian nhỏ hơn để cải thiện việc xử lý cách đọc kèo bóng đá giá trị ngoại lệ.Bảng 64.8. Tất cả cách đọc kèo bóng đá thành viên của lớp vận hành (thủ tục và toán tử) là bắt buộc.

Bảng 64.8. Quy trình và số hỗ trợ cho cách đọc kèo bóng đá lớp toán tử Minmax-Multi

Thành viên lớp vận cách đọc kèo bóng đá Đối tượng
Quy trình hỗ trợ 1 Hàm nội bộbrin_minmax_multi_opcinfo ()
Quy trình hỗ trợ 2 Hàm nội bộbrin_minmax_multi_add_value ()
Quy trình hỗ trợ 3 Hàm nội bộbrin_minmax_multi_consistent ()
Quy trình hỗ trợ 4 Hàm nội bộbrin_minmax_multi_union ()
Quy trình hỗ trợ 5 Hàm nội bộbrin_minmax_multi_options ()
Quy trình hỗ trợ 11 hàm để tính khoảng cách đọc kèo bóng đá giữa hai giá trị (độ dài của một phạm vi)
Chiến lược vận cách đọc kèo bóng đá 1 Nhà điều cách đọc kèo bóng đá ít hơn
Chiến lược vận cách đọc kèo bóng đá 2 Nhà điều cách đọc kèo bóng đá ít hơn hoặc không bằng nhau để
Chiến lược vận cách đọc kèo bóng đá 3 Người vận cách đọc kèo bóng đá bằng
Chiến lược vận cách đọc kèo bóng đá 4 Nhà điều cách đọc kèo bóng đá Greater-OF-Equal-to
Chiến lược vận cách đọc kèo bóng đá 5 Nhà điều cách đọc kèo bóng đá lớn hơn

Cả hai lớp toán tử minmax và bao gồm đều hỗ trợ cách đọc kèo bóng đá toán tử loại dữ liệu chéo, mặc dù với những phụ thuộc này trở nên phức tạp hơn. Lớp toán tử MinMax yêu cầu một bộ toán tử đầy đủ được xác định với cả hai đối số có cùng loại dữ liệu.Bảng 64.6hoặc cùng một chiến lược vận cách đọc kèo bóng đá như chính họ. Họ yêu cầu toán tử phụ thuộc phải được xác định vớilưu trữKiểu dữ cách đọc kèo bóng đá là đối số phía bên trái và kiểu dữ cách đọc kèo bóng đá được hỗ trợ khác là đối số bên phải của toán tử được hỗ trợ. Nhìn thấyfloat4_minmax_opsnhư một ví dụ về minmax vàbox_inclusion_opsnhư một ví dụ về sự bao gồm.

Gửi hiệu chỉnh

Nếu bạn thấy bất cứ điều gì trong tài cách đọc kèo bóng đá không chính xác, không phù hợpMẫu nàyĐể báo cáo vấn đề tài cách đọc kèo bóng đá.