# 68.2.内置运算符类

68.2.1. 运算符类参数

PostgreSQL核心发行版包括中所示的BRIN运算符类表68.1.

这个极小极大运算符类存储范围内索引列中出现的最小值和最大值。这个包含运算符类存储一个值,该值包括范围内索引列中的值。这个开花运算符类为该范围内的所有值构建Bloom过滤器。这个最小最大多重运算符类存储多个最小值和最大值,表示范围内索引列中出现的值。

表68.1.内置的BRIN运算符类

名称 可转位算子
比特最小最大值操作 =(位,位)
<(位,位)
>(点点滴滴)
<=(位,位)
>=(位,位)
盒子_包含_操作 @>(框、点)
<<(盒子,盒子)
&<(盒子,盒子)
&>(盒子,盒子)
>>(盒子,盒子)
<@ (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”)
>=(“字符”,“字符”)
日期(星期五) =(日期,日期)
日期_minmax _ops =(日期,日期)
<(日期,日期)
<=(日期,日期)
>(日期,日期)
>=(日期,日期)
日期_minmax _multi _ops =(日期,日期)
<(日期,日期)
<=(日期,日期)
>(日期,日期)
>=(日期,日期)
漂浮物4_bloom_ops =(浮动4,浮动4)
浮动4_最小最大值_操作 =(浮动4,浮动4)
<(浮动4,浮动4)
>(浮动4,浮动4)
<=(浮动4,浮动4)
>=(浮动4,浮动4)
浮动4_minmax_multi_ops =(浮动4,浮动4)
<(浮动4,浮动4)
>(浮动4,浮动4)
<=(浮动4,浮动4)
>=(浮动4,浮动4)
浮子8_bloom_ops =(浮动8,浮动8)
浮动8_最小最大值_操作 =(浮动8,浮动8)
<(浮动8,浮动8)
<=(浮动8,浮动8)
>(浮动8,浮动8)
>=(浮动8,浮动8)
浮动8_minmax_multi_ops =(浮动8,浮动8)
<(浮动8,浮动8)
<=(浮动8,浮动8)
>(浮动8,浮动8)
>=(浮动8,浮动8)
inet_inclusion_ops <(inet,inet)
<<=(inet,inet)
>>(inet,inet)
>>=(inet,inet)
=(inet,inet)
&&(inet,inet)
伊内特布鲁姆酒店 =(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)
int8_minmax_multi_ops =(bigint,bigint)
<(bigint,bigint)
>(比金,比金)
<=(bigint,bigint)
>=(bigint,bigint)
间隔_bloom _ops =(间隔,间隔)
间隔最小最大值操作 =(间隔,间隔)
<(间隔,间隔)
<=(间隔,间隔)
>(间歇,间歇)
>=(间隔,间隔)
间隔_minmax _multi _ops =(间隔,间隔)
<(间隔,间隔)
<=(间隔,间隔)
>(间歇,间歇)
>=(间隔,间隔)
马卡德·布鲁姆行动 =(macaddr,macaddr)
macaddr_minmax_ops =(macaddr,macaddr)
<(macaddr,macaddr)
<=(macaddr,macaddr)
>(马卡德尔,马卡德尔)
>=(macaddr,macaddr)
macaddr_minmax_multi_ops =(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_minmax_ops =(姓名,姓名)
<(名称,名称)
<=(名称,名称)
>(姓名,姓名)
>=(姓名,姓名)
numeric_bloom_ops =(数字,数字)
numeric_minmax_ops =(数字,数字)
<(数字,数字)
<=(数字,数字)
>(数字,数字)
>=(数字,数字)
numeric_minmax_multi_ops =(数字,数字)
<(数字,数字)
<=(数字,数字)
>(数字,数字)
>=(数字,数字)
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 =(任意范围,任意范围)
<(任意范围,任意范围)
<=(任意范围,任意范围)
> =(任意范围,任意范围)
>(任意范围,任意范围)
&&(任意范围,任意范围)
@>(任意范围,任意元素)
@>(任意范围,任意范围)
<@(任意范围,任意范围)
<<(任意范围,任意范围)
>>(任意范围,任意范围)
& <(任意范围,任意范围)
&>(任意范围,任意范围)
- | -(任意范围,任意范围)
text_bloom_ops =(文字,文字)
text_minmax_ops =(文字,文字)
<(文本,文本)
<=(文本,文本)
>(文字、文字)
> =(文本,文本)
tid_bloom_ops =(时间,时间)
tid_minmax_ops =(时间,时间)
<(时间,时间)
>(时间,时间)
<=(时间,时间)
> =(时间,时间)
tid_minmax_multi_ops = (tid,tid)
< (tid,tid)
> (tid,tid)
<= (tid,tid)
>= (tid,tid)
timestamp_bloom_ops =(时间戳,时间戳)
timestamp_minmax_ops =(时间戳,时间戳)
<(时间戳,时间戳)
<=(时间戳,时间戳)
>(时间戳,时间戳)
>=(时间戳,时间戳)
timestamp_minmax_multi_ops =(时间戳,时间戳)
<(时间戳,时间戳)
<=(时间戳,时间戳)
>(时间戳,时间戳)
>=(时间戳,时间戳)
timestamptz_bloom_ops =(时间戳,时间戳)
timestamptz_minmax_ops =(时间戳,时间戳)
<(时间戳,时间戳)
<= (timestamptz,timestamptz)
> (timestamptz,timestamptz)
>=(时间戳,时间戳)
timestamptz_minmax_multi_ops =(时间戳,时间戳)
<(时间戳,时间戳)
<= (timestamptz,timestamptz)
> (timestamptz,timestamptz)
>=(时间戳,时间戳)
time_bloom_ops =(时间,时间)
time_minmax_ops =(时间,时间)
<(时间,时间)
<=(时间,时间)
>(时间,时间)
>=(时间,时间)
time_minmax_multi_ops =(时间,时间)
<(时间,时间)
<=(时间,时间)
>(时间,时间)
>=(时间,时间)
timetz_bloom_ops =(时间,时间)
timetz_minmax_ops =(时间,时间)
<(时间,时间)
<= (timetz,timetz)
> (timetz,timetz)
>= (timetz,timetz)
timetz_minmax_multi_ops =(时间,时间)
<(时间,时间)
<= (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)

# 68.2.1. Operator Class Parameters

Some of the built-in operator classes allow specifying parameters affecting behavior of the operator class. Each operator class has its own set of allowed parameters. Only thebloomandminmax-multioperator classes allow specifying parameters:

Bloom 运算符类接受以下参数:

n_distinct_per_range

定义块范围内不同非空值的估计数量,由 BRIN 布隆索引用于布隆过滤器的大小调整。它的行为类似于n_distinct选项更改表.当设置为正值时,假定每个块范围包含此数量的不同非空值。当设置为必须大于或等于 -1 的负值时,假定不同的非空值的数量随着块范围内的最大可能元组数(每个块大约 290 行)线性增长。默认值为-0.1,并且不同的非空值的最小数量是16.

假阳性率

定义 BRIN 布隆索引用于调整布隆过滤器大小的所需误报率。该值必须介于 0.0001 和 0.25 之间。默认值为 0.01,即 1% 的误报率。

minmax-multi 运算符类接受以下参数:

values_per_range

定义 BRIN minmax 索引存储的值的最大数量以汇总块范围。每个值可以代表一个点,也可以代表一个区间的边界。值必须介于 8 到 256 之间,默认值为 32.