Перейти к основному содержимому

Встроенные классы операторов

примечание

Эта страница переведена при помощи нейросети 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.