Re: Re: [pgsql-ru-general] Итерирование по таблице в режиме "Больше чем"

From: "Dmitry E(dot) Oboukhov" <unera(at)debian(dot)org>
To: pgsql-ru-general(at)postgresql(dot)org
Subject: Re: Re: [pgsql-ru-general] Итерирование по таблице в режиме "Больше чем"
Date: 2016-12-14 11:55:13
Message-ID: 20161214115513.GE14462@vdsl.uvw.ru
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-ru-general

> есть таблица

> "id" SERIAL
> "did" INTEGER REFERENCES (NOT UNIQUE)

> Таблица очень большая.

> Нужен скрипт который обойдет данную таблицу по уникальным did, причем
> желательно в порядке по возрастанию ID.
> При этом желательно использовать индекс

> Такое не подойдет?

> https://wiki.postgresql.org/wiki/Loose_indexscan

Насколько я понимаю будет ровно та же проблема из за
SELECT MIN(col).

То есть для unique индекса такой перебор вполне хорошо идет
а вот для non-unique индекса перебор с выборкой unique заставляет
брать min/max (от направления).

а поскольку оно min/max планирует посортировать ПОСЛЕ выборки блока,
то теоретически может сортируя оперировать большими объемами, а этого
хочется избежать.

Ведь выборка из BTREE с пропуском ненужных элементов сразу дает
нужный, сортированный результат.
--

. ''`. Dmitry E. Oboukhov
: :’ : email: unera(at)debian(dot)org jabber://UNera(at)uvw(dot)ru
`. `~’ GPGKey: 1024D / F8E26537 2006-11-21
`- 1B23 D4F8 8EC0 D902 0555 E438 AB8C 00CF F8E2 6537

In response to

Browse pgsql-ru-general by date

  From Date Subject
Next Message Dmitry E. Oboukhov 2017-03-06 11:50:51 сменить пароли/доступы к БД без даунтайма
Previous Message Oleksandr Shulgin 2016-12-14 10:50:58 Re: [pgsql-ru-general] Итерирование по таблице в режиме "Больше чем"