powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / index for subnet
4 сообщений из 4, страница 1 из 1
index for subnet
    #33030807
msa@n-e.ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Народ, кто - нить знает , почему не используются индексы вот в этом случае
-- Table: public.stat_country_ip_range
CREATE TABLE public.stat_country_ip_range (
id_country int4,
subnet inet
) WITH OIDS;
Вот пример данных в таблице

487;"83.103.63.96/28"
487;"85.34.153.144/29"
517;"217.79.90.128/26"
488;"212.87.153.0/28"
501;"217.71.245.144/29"

всего записей около 2-х миллионов

есть индекс
CREATE INDEX stat_country_ip_range_subnet_key
ON stat_country_ip_range
USING btree
(subnet);

почему он не используется в запросе

select * from stat_country_ip_range where '62.61.12.11'::inet << subnet

и вобще должен ли он использоваться???

PS. пересбор статистики и реиндексинг выполняется раз в сутки
...
Рейтинг: 0 / 0
index for subnet
    #33035090
Funny_Falcon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Btree индексы используются только при операциях < <= = >= >.
Попробуй построить GIST (может даже самому придётся сделать).
...
Рейтинг: 0 / 0
index for subnet
    #33152475
user1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А какой-нибудь тип индексов работает с <<= ? Эта операция всего навсего может быть сведена к двум операторам >= и <= .
...
Рейтинг: 0 / 0
index for subnet
    #33153886
Funny_Falcon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А какой-нибудь тип индексов работает с <<= ? Эта операция всего навсего может быть сведена к двум операторам >= и <= .
Btree индексы используются только при операциях < <= = >= >.
Попробуй построить GIST (может даже самому придётся сделать).
Я например сделал подобное для строк (мне нужно искать строки в таблице, с которых начинается данная). Внес немного изменений в стандартный
contrib/btree-gist. Кстати, именно сведя к >= и <=, вернее даже = (файлы в
форуме есть). Ускорение в сравнении со сведением к <= и >= и
использованием обычного Btree (индекса по выражению) - 2x. Для сабнета
сделать в планах, но пока времени нет.
Почитай доку по GIST и посмотри btree-gist. Если в С программируешь, то там все понятно и добавить нетрудно.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / index for subnet
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]