核心 PostgreSQL 发行版包含 Table 66.1 中所示的 BRIN 操作符类。
minmax 操作符类存储该范围内索引列中出现的最小值和最大值。 inclusion 操作符类存储一个能够包含该范围内索引列值的值。 bloom 操作符类会为该范围内的全部值构建一个布隆过滤器。 minmax-multi 操作符类则存储多个最小值和最大值,以表示该范围内索引列中出现的值。
Table 66.1. 内置 BRIN 操作符类
| 名称 | 可索引操作符 |
|---|---|
bit_minmax_ops |
= (bit,bit) |
< (bit,bit) |
|
> (bit,bit) |
|
<= (bit,bit) |
|
>= (bit,bit) |
|
box_inclusion_ops |
@> (box,point) |
<< (box,box) |
|
&< (box,box) |
|
&> (box,box) |
|
>> (box,box) |
|
<@ (box,box) |
|
@> (box,box) |
|
~= (box,box) |
|
&& (box,box) |
|
<<| (box,box) |
|
&<| (box,box) |
|
|&> (box,box) |
|
|>> (box,box) |
|
bpchar_bloom_ops |
= (character,character) |
bpchar_minmax_ops |
= (character,character) |
< (character,character) |
|
<= (character,character) |
|
> (character,character) |
|
>= (character,character) |
|
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 |
= (date,date) |
date_minmax_ops |
= (date,date) |
< (date,date) |
|
<= (date,date) |
|
> (date,date) |
|
>= (date,date) |
|
date_minmax_multi_ops |
= (date,date) |
< (date,date) |
|
<= (date,date) |
|
> (date,date) |
|
>= (date,date) |
|
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 |
= (interval,interval) |
interval_minmax_ops |
= (interval,interval) |
< (interval,interval) |
|
<= (interval,interval) |
|
> (interval,interval) |
|
>= (interval,interval) |
|
interval_minmax_multi_ops |
= (interval,interval) |
< (interval,interval) |
|
<= (interval,interval) |
|
> (interval,interval) |
|
>= (interval,interval) |
|
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 |
= (name,name) |
name_minmax_ops |
= (name,name) |
< (name,name) |
|
<= (name,name) |
|
> (name,name) |
|
>= (name,name) |
|
numeric_bloom_ops |
= (numeric,numeric) |
numeric_minmax_ops |
= (numeric,numeric) |
< (numeric,numeric) |
|
<= (numeric,numeric) |
|
> (numeric,numeric) |
|
>= (numeric,numeric) |
|
numeric_minmax_multi_ops |
= (numeric,numeric) |
< (numeric,numeric) |
|
<= (numeric,numeric) |
|
> (numeric,numeric) |
|
>= (numeric,numeric) |
|
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,anyelement) |
|
@> (anyrange,anyrange) |
|
<@ (anyrange,anyrange) |
|
<< (anyrange,anyrange) |
|
>> (anyrange,anyrange) |
|
&< (anyrange,anyrange) |
|
&> (anyrange,anyrange) |
|
-|- (anyrange,anyrange) |
|
text_bloom_ops |
= (text,text) |
text_minmax_ops |
= (text,text) |
< (text,text) |
|
<= (text,text) |
|
> (text,text) |
|
>= (text,text) |
|
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 |
= (timestamp,timestamp) |
timestamp_minmax_ops |
= (timestamp,timestamp) |
< (timestamp,timestamp) |
|
<= (timestamp,timestamp) |
|
> (timestamp,timestamp) |
|
>= (timestamp,timestamp) |
|
timestamp_minmax_multi_ops |
= (timestamp,timestamp) |
< (timestamp,timestamp) |
|
<= (timestamp,timestamp) |
|
> (timestamp,timestamp) |
|
>= (timestamp,timestamp) |
|
timestamptz_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) |
|
>= (timestamptz,timestamptz) |
|
time_bloom_ops |
= (time,time) |
time_minmax_ops |
= (time,time) |
< (time,time) |
|
<= (time,time) |
|
> (time,time) |
|
>= (time,time) |
|
time_minmax_multi_ops |
= (time,time) |
< (time,time) |
|
<= (time,time) |
|
> (time,time) |
|
>= (time,time) |
|
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) |
一些内置操作符类允许指定影响其行为的参数。 每个操作符类都有自己允许的一组参数。 只有 bloom 和 minmax-multi 操作符类允许指定参数:
bloom 操作符类接受下列参数:
n_distinct_per_range定义块范围内非空不同值的估计数量,BRIN bloom 索引用它来确定布隆过滤器的大小。 其行为类似于 ALTER TABLE 的 n_distinct 选项。 设置为正值时,假定每个块范围都包含这么多个非空不同值。 设置为负值时(必须大于或等于 -1),假定非空不同值的数量会随着块范围中元组最大可能数量线性增长(每个块约 290 行)。 默认值为 -0.1,非空不同值的最小数量为 16。
false_positive_rate定义 BRIN bloom 索引用于确定布隆过滤器大小的目标误报率。 取值必须在 0.0001 到 0.25 之间。默认值为 0.01,即 1% 的误报率。
minmax-multi 操作符类接受这些参数:
values_per_range定义 BRIN minmax-multi 索引为摘要一个块范围而存储的最大值个数。 每个值可以表示一个点,也可以表示一个区间的边界。 取值必须在 8 到 256 之间,默认值为 32。
如果您发现文档中有不正确的内容、与您使用特定功能的经验不符或需要进一步说明,请使用此表单来报告文档问题。