## 68.2.内置运算符类 [68.2.1. 运算符类参数](brin-builtin-opclasses.html#BRIN-BUILTIN-OPCLASSES--PARAMETERS) PostgreSQL核心发行版包括中所示的BRIN运算符类[表68.1](brin-builtin-opclasses.html#BRIN-BUILTIN-OPCLASSES-TABLE). 这个*极小极大*运算符类存储范围内索引列中出现的最小值和最大值。这个*包含*运算符类存储一个值,该值包括范围内索引列中的值。这个*开花*运算符类为该范围内的所有值构建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 the`bloom`and`minmax-multi`operator classes allow specifying parameters: Bloom 运算符类接受以下参数: `n_distinct_per_range` 定义块范围内不同非空值的估计数量,由 BRIN 布隆索引用于布隆过滤器的大小调整。它的行为类似于`n_distinct`选项[更改表](sql-altertable.html).当设置为正值时,假定每个块范围包含此数量的不同非空值。当设置为必须大于或等于 -1 的负值时,假定不同的非空值的数量随着块范围内的最大可能元组数(每个块大约 290 行)线性增长。默认值为`-0.1`,并且不同的非空值的最小数量是`16`. `假阳性率` 定义 BRIN 布隆索引用于调整布隆过滤器大小的所需误报率。该值必须介于 0.0001 和 0.25 之间。默认值为 0.01,即 1% 的误报率。 minmax-multi 运算符类接受以下参数: `values_per_range` 定义 BRIN minmax 索引存储的值的最大数量以汇总块范围。每个值可以代表一个点,也可以代表一个区间的边界。值必须介于 8 到 256 之间,默认值为 32.