# 68.2.内置运算符类
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 thebloom
andminmax-multi
operator 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.