Встроенные классы операторов
Эта страница переведена при помощи нейросети GigaChat.
В основной дистрибутив PostgreSQL входят классы операторов BRIN, показанные в таблице ниже.
Классы оператора minmax хранят минимальное и максимальное значения, встречающиеся в индексированном столбце в пределах диапазона. Классы оператора inclusion хранят значение, которое включает значения в индексированном столбце в пределах диапазона. Классы оператора bloom строят фильтр Блума для всех значений в диапазоне. Классы операторов minmax-multi хранят несколько минимальных и максимальных значений, представляющих значения, появляющиеся в индексированном столбце в пределах диапазона.
Таблица «Встроенные классы операторов BRIN»:
| Имя | Индексируемые операторы |
|---|---|
bit_minmax_ops | = (bit, bit) |
bit_minmax_ops | < (bit,bit) |
bit_minmax_ops | > (bit,bit) |
bit_minmax_ops | <= (bit,bit) |
bit_minmax_ops | >= (bit,bit) |
box_inclusion_ops | @> (box,point) |
box_inclusion_ops | << (box, box) |
box_inclusion_ops | &< (box,box) |
box_inclusion_ops | &> (box, box) |
box_inclusion_ops | >> (box, box) |
box_inclusion_ops | @< (box,box) |
box_inclusion_ops | @> (box,box) |
box_inclusion_ops | ~= (box, box) |
box_inclusion_ops | && (box,box) |
box_inclusion_ops | <<| (box, box) |
box_inclusion_ops | &<| (box,box) |
box_inclusion_ops | |&> (box,box) |
box_inclusion_ops | |>> (box,box) |
bpchar_bloom_ops | = (character,character) |
bpchar_minmax_ops | = (character,character) |
bpchar_minmax_ops | < (character,character) |
bpchar_minmax_ops | <= (character,character) |
bpchar_minmax_ops | > (character,character) |
bpchar_minmax_ops | >= (character,character) |
bytea_bloom_ops | = (bytea,bytea) |
bytea_minmax_ops | = (bytea,bytea) |
bytea_minmax_ops | < (bytea,bytea) |
bytea_minmax_ops | <= (bytea,bytea) |
bytea_minmax_ops | > (bytea,bytea) |
bytea_minmax_ops | >= (bytea,bytea) |
char_bloom_ops | = ("char", "char") |
char_minmax_ops | = ("char", "char") |
char_minmax_ops | < ("char", "char") |
char_minmax_ops | <= ("char", "char") |
char_minmax_ops | > ("char", "char") |
char_minmax_ops | >= ("char", "char") |
date_bloom_ops | = (date, date) |
date_minmax_ops | = (date, date) |
date_minmax_ops | < (date,date) |
date_minmax_ops | <= (date,date) |
date_minmax_ops | > (date,date) |
date_minmax_ops | >= (date,date) |
date_minmax_multi_ops | = (date, date) |
date_minmax_multi_ops | < (date,date) |
date_minmax_multi_ops | <= (date,date) |
date_minmax_multi_ops | > (date,date) |
date_minmax_multi_ops | >= (date,date) |
float4_bloom_ops | = (float4,float4) |
float4_minmax_ops | = (float4,float4) |
float4_minmax_ops | < (float4,float4) |
float4_minmax_ops | > (float4,float4) |
float4_minmax_ops | <= (float4,float4) |
float4_minmax_ops | >= (float4,float4) |
float4_minmax_multi_ops | = (float4,float4) |
float4_minmax_multi_ops | < (float4,float4) |
float4_minmax_multi_ops | > (float4,float4) |
float4_minmax_multi_ops | <= (float4,float4) |
float4_minmax_multi_ops | >= (float4,float4) |
float8_bloom_ops | = (float8,float8) |
float8_minmax_ops | = (float8,float8) |
float8_minmax_ops | < (float8,float8) |
float8_minmax_ops | <= (float8,float8) |
float8_minmax_ops | > (float8,float8) |
float8_minmax_ops | >= (float8,float8) |
float8_minmax_multi_ops | = (float8,float8) |
float8_minmax_multi_ops | < (float8,float8) |
float8_minmax_multi_ops | > (float8,float8) |
float8_minmax_multi_ops | <= (float8,float8) |
float8_minmax_multi_ops | >= (float8,float8) |
inet_inclusion_ops | << (inet,inet) |
inet_inclusion_ops | <= (inet,inet) |
inet_inclusion_ops | >> (inet,inet) |
inet_inclusion_ops | >= (inet,inet) |
inet_inclusion_ops | = (inet,inet) |
inet_inclusion_ops | && (inet,inet) |
inet_bloom_ops | = (inet,inet) |
inet_minmax_ops | = (inet,inet) |
inet_minmax_ops | < (inet,inet) |
inet_minmax_ops | <= (inet,inet) |
inet_minmax_ops | > (inet,inet) |
inet_minmax_ops | >= (inet,inet) |
inet_minmax_multi_ops | = (inet,inet) |
inet_minmax_multi_ops | < (inet,inet) |
inet_minmax_multi_ops | <= (inet,inet) |
inet_minmax_multi_ops | > (inet,inet) |
inet_minmax_multi_ops | >= (inet,inet) |
int2_bloom_ops | = (int2,int2) |
int2_minmax_ops | = (int2,int2) |
int2_minmax_ops | < (int2,int2) |
int2_minmax_ops | > (int2,int2) |
int2_minmax_ops | <= (int2,int2) |
int2_minmax_ops | >= (int2,int2) |
int2_minmax_multi_ops | = (int2,int2) |
int2_minmax_multi_ops | < (int2,int2) |
int2_minmax_multi_ops | > (int2,int2) |
int2_minmax_multi_ops | <= (int2,int2) |
int2_minmax_multi_ops | >= (int2,int2) |
int4_bloom_ops | = (int4,int4) |
int4_minmax_ops | = (int4,int4) |
int4_minmax_ops | < (int4,int4) |
int4_minmax_ops | > (int4,int4) |
int4_minmax_ops | <= (int4,int4) |
int4_minmax_ops | >= (int4,int4) |
int4_minmax_multi_ops | = (int4,int4) |
int4_minmax_multi_ops | < (int4,int4) |
int4_minmax_multi_ops | > (int4,int4) |
int4_minmax_multi_ops | <= (int4,int4) |
int4_minmax_multi_ops | >= (int4,int4) |
int8_bloom_ops | = (bigint,bigint) |
int8_minmax_ops | = (bigint,bigint) |
int8_minmax_ops | < (bigint,bigint) |
int8_minmax_ops | > (bigint,bigint) |
int8_minmax_ops | <= (bigint,bigint) |
int8_minmax_ops | >= (bigint,bigint) |
int8_minmax_multi_ops | = (bigint,bigint) |
int8_minmax_multi_ops | < (bigint,bigint) |
int8_minmax_multi_ops | > (bigint,bigint) |
int8_minmax_multi_ops | <= (bigint,bigint) |
int8_minmax_multi_ops | >= (bigint,bigint) |
interval_bloom_ops | = (interval, interval) |
interval_minmax_ops | = (interval, interval) |
interval_minmax_ops | < (interval,interval) |
interval_minmax_ops | <= (interval,interval) |
interval_minmax_ops | > (interval,interval) |
interval_minmax_ops | >= (interval,interval) |
interval_minmax_multi_ops | = (interval, interval) |
interval_minmax_multi_ops | < (interval,interval) |
interval_minmax_multi_ops | <= (interval,interval) |
interval_minmax_multi_ops | > (interval,interval) |
interval_minmax_multi_ops | >= (interval,interval) |
macaddr_bloom_ops | = (macaddr,macaddr) |
macaddr_minmax_ops | = (macaddr,macaddr) |
macaddr_minmax_ops | < (macaddr,macaddr) |
macaddr_minmax_ops | <= (macaddr,macaddr) |
macaddr_minmax_ops | > (macaddr,macaddr) |
macaddr_minmax_ops | >= (macaddr,macaddr) |
macaddr_minmax_multi_ops | = (macaddr,macaddr) |
macaddr_minmax_multi_ops | < (macaddr,macaddr) |
macaddr_minmax_multi_ops | <= (macaddr,macaddr) |
macaddr_minmax_multi_ops | > (macaddr,macaddr) |
macaddr_minmax_multi_ops | >= (macaddr,macaddr) |
macaddr8_bloom_ops | = (macaddr8,macaddr8) |
macaddr8_minmax_ops | = (macaddr8,macaddr8) |
macaddr8_minmax_ops | < (macaddr8,macaddr8) |
macaddr8_minmax_ops | <= (macaddr8,macaddr8) |
macaddr8_minmax_ops | > (macaddr8,macaddr8) |
macaddr8_minmax_ops | >= (macaddr8,macaddr8) |
macaddr8_minmax_multi_ops | = (macaddr8,macaddr8) |
macaddr8_minmax_multi_ops | < (macaddr8,macaddr8) |
macaddr8_minmax_multi_ops | <= (macaddr8,macaddr8) |
macaddr8_minmax_multi_ops | > (macaddr8,macaddr8) |
macaddr8_minmax_multi_ops | >= (macaddr8,macaddr8) |
name_цветка_опса | = (name, name) |
name_minmax_ops | = (name, name) |
name_minmax_ops | < (name,name) |
name_minmax_ops | <= (name,name) |
name_minmax_ops | > (name,name) |
name_minmax_ops | >= (name,name) |
numeric_bloom_ops | = (numeric,numeric) |
numeric_minmax_ops | = (numeric,numeric) |
numeric_minmax_ops | < (numeric,numeric) |
numeric_minmax_ops | <= (numeric,numeric) |
numeric_minmax_ops | > (numeric,numeric) |
numeric_minmax_ops | >= (numeric,numeric) |
numeric_minmax_multi_ops | = (numeric,numeric) |
numeric_minmax_multi_ops | < (numeric,numeric) |
numeric_minmax_multi_ops | <= (numeric,numeric) |
numeric_minmax_multi_ops | > (numeric,numeric) |
numeric_minmax_multi_ops | >= (numeric,numeric) |
oid_bloom_ops | = (oid,oid) |
oid_minmax_ops | = (oid,oid) |
oid_minmax_ops | < (oid,oid) |
oid_minmax_ops | > (oid,oid) |
oid_minmax_ops | <= (oid,oid) |
oid_minmax_ops | >= (oid,oid) |
oid_minmax_multi_ops | = (oid,oid) |
oid_minmax_multi_ops | < (oid,oid) |
oid_minmax_multi_ops | > (oid,oid) |
oid_minmax_multi_ops | <= (oid,oid) |
oid_minmax_multi_ops | >= (oid,oid) |
pg_lsn_bloom_ops | = (pg_lsn,pg_lsn) |
pg_lsn_minmax_ops | = (pg_lsn,pg_lsn) |
pg_lsn_minmax_ops | < (pg_lsn,pg_lsn) |
pg_lsn_minmax_ops | > (pg_lsn,pg_lsn) |
pg_lsn_minmax_ops | <= (pg_lsn,pg_lsn) |
pg_lsn_minmax_ops | >= (pg_lsn,pg_lsn) |
pg_lsn_minmax_multi_ops | = (pg_lsn,pg_lsn) |
pg_lsn_minmax_multi_ops | < (pg_lsn,pg_lsn) |
pg_lsn_minmax_multi_ops | > (pg_lsn,pg_lsn) |
pg_lsn_minmax_multi_ops | <= (pg_lsn,pg_lsn) |
pg_lsn_minmax_multi_ops | >= (pg_lsn,pg_lsn) |
range_inclusion_ops | = (anyrange, anyrange) |
range_inclusion_ops | < (anyrange,anyrange) |
range_inclusion_ops | <= (anyrange,anyrange) |
range_inclusion_ops | >= (anyrange,anyrange) |
range_inclusion_ops | > (anyrange,anyrange) |
range_inclusion_ops | && (anyrange,anyrange) |
range_inclusion_ops | @> (anyrange,anyelement) |
range_inclusion_ops | @> (anyrange,anyrange) |
range_inclusion_ops | @< (anyrange,anyrange) |
range_inclusion_ops | << (anyrange,anyrange) |
range_inclusion_ops | >> (anyrange,anyrange) |
range_inclusion_ops | &< (anyrange, anyrange) |
range_inclusion_ops | &> (anyrange,anyrange) |
range_inclusion_ops | -|- (anyrange, anyrange) |
text_bloom_ops | = (text,text) |
text_minmax_ops | = (text,text) |
text_minmax_ops | < (text,text) |
text_minmax_ops | <= (text,text) |
text_minmax_ops | > (text,text) |
text_minmax_ops | >= (text,text) |
tid_bloom_ops | = (tid,tid) |
tid_minmax_ops | = (tid,tid) |
tid_minmax_ops | < (tid,tid) |
tid_minmax_ops | > (tid,tid) |
tid_minmax_ops | <= (tid,tid) |
tid_minmax_ops | >= (tid,tid) |
tid_minmax_multi_ops | = (tid,tid) |
tid_minmax_multi_ops | < (tid,tid) |
tid_minmax_multi_ops | > (tid,tid) |
tid_minmax_multi_ops | <= (tid,tid) |
tid_minmax_multi_ops | >= (tid,tid) |
timestamp_bloom_ops | = (timestamp,timestamp) |
timestamp_minmax_ops | = (timestamp,timestamp) |
timestamp_minmax_ops | < (timestamp,timestamp) |
timestamp_minmax_ops | <= (timestamp,timestamp) |
timestamp_minmax_ops | > (timestamp,timestamp) |
timestamp_minmax_ops | >= (timestamp,timestamp) |
timestamp_minmax_multi_ops | = (timestamp,timestamp) |
timestamp_minmax_multi_ops | < (timestamp,timestamp) |
timestamp_minmax_multi_ops | <= (timestamp,timestamp) |
timestamp_minmax_multi_ops | > (timestamp,timestamp) |
timestamp_minmax_multi_ops | >= (timestamp,timestamp) |
timestamptz_bloom_ops | = (timestamptz,timestamptz) |
timestamptz_minmax_ops | = (timestamptz,timestamptz) |
timestamptz_minmax_ops | < (timestamptz,timestamptz) |
timestamptz_minmax_ops | <= (timestamptz,timestamptz) |
timestamptz_minmax_ops | > (timestamptz,timestamptz) |
timestamptz_minmax_ops | >= (timestamptz,timestamptz) |
timestamptz_minmax_multi_ops | = (timestamptz,timestamptz) |
timestamptz_minmax_multi_ops | < (timestamptz,timestamptz) |
timestamptz_minmax_multi_ops | <= (timestamptz,timestamptz) |
timestamptz_minmax_multi_ops | > (timestamptz,timestamptz) |
timestamptz_minmax_multi_ops | >= (timestamptz,timestamptz) |
time_bloom_ops | = (time, time) |
time_minmax_ops | = (time, time) |
time_minmax_ops | < (time, time) |
time_minmax_ops | <= (time,time) |
time_minmax_ops | > (time, time) |
time_minmax_ops | >= (time,time) |
time_minmax_multi_ops | = (time, time) |
time_minmax_multi_ops | < (time, time) |
time_minmax_multi_ops | <= (time,time) |
time_minmax_multi_ops | > (time, time) |
time_minmax_multi_ops | >= (time,time) |
timetz_bloom_ops | = (timetz,timetz) |
timetz_minmax_ops | = (timetz,timetz) |
timetz_minmax_ops | < (timetz,timetz) |
timetz_minmax_ops | <= (timetz,timetz) |
timetz_minmax_ops | > (timetz,timetz) |
timetz_minmax_ops | >= (timetz,timetz) |
timetz_minmax_multi_ops | = (timetz,timetz) |
timetz_minmax_multi_ops | < (timetz,timetz) |
timetz_minmax_multi_ops | <= (timetz,timetz) |
timetz_minmax_multi_ops | > (timetz,timetz) |
timetz_minmax_multi_ops | >= (timetz,timetz) |
uuid_bloom_ops | = (uuid,uuid) |
uuid_minmax_ops | = (uuid,uuid) |
uuid_minmax_ops | < (uuid,uuid) |
uuid_minmax_ops | > (uuid,uuid) |
uuid_minmax_ops | <= (uuid,uuid) |
uuid_minmax_ops | >= (uuid,uuid) |
uuid_minmax_multi_ops | = (uuid,uuid) |
uuid_minmax_multi_ops | < (uuid,uuid) |
uuid_minmax_multi_ops | > (uuid,uuid) |
uuid_minmax_multi_ops | <= (uuid,uuid) |
uuid_minmax_multi_ops | >= (uuid,uuid) |
varbit_minmax_ops | = (varbit,varbit) |
varbit_minmax_ops | < (varbit,varbit) |
varbit_minmax_ops | > (varbit,varbit) |
varbit_minmax_ops | <= (varbit,varbit) |
varbit_minmax_ops | >= (varbit,varbit) |
Параметры класса операторов
Некоторые из встроенных классов операторов позволяют задавать параметры, влияющие на поведение класса оператора. Каждый класс операторов имеет свой набор допустимых параметров. Только классы операторов bloom и minmax-multi позволяют указывать параметры:
Классы операторов bloom принимают эти параметры:
n_distinct_per_range
Определяет предполагаемое количество отдельных ненулевых значений в диапазоне блоков, используемых индексами BRIN bloom для определения размера фильтра Bloom. Действует аналогично параметру n_distinct для ALTER TABLE. При положительном значении предполагается, что каждый диапазон блоков содержит это количество отдельных ненулевых значений. При установке отрицательного значения, которое должно быть больше или равно -1, предполагается, что количество отдельных ненулевых значений будет расти линейно с максимально возможным количеством кортежей в диапазоне блоков (около 290 строк на блок). Значение по умолчанию равно -0.1, а минимальное количество отдельных ненулевых значений равно 16.
false_positive_rate
Определяет желаемый коэффициент ложных срабатываний, используемый индексами BRIN bloom для определения размера фильтра Блума. Значение должно находиться в диапазоне от 0,0001 до 0,25. Значение по умолчанию - 0,01, что составляет 1 % ложных срабатываний.
Классы операторов minmax-multi принимают эти параметры:
values_per_range
Определяет максимальное количество значений, хранимых индексами BRIN minmax для обобщения диапазона блоков. Каждое значение может представлять собой либо точку, либо границу интервала. Значения должны быть в диапазоне от 8 до 256, по умолчанию – 32.