Re: Стоимость запроса в EXPLAIN с LIMIT и OFFSET

From: "Alexander M(dot) Pravkin" <fduch(at)antar(dot)bryansk(dot)ru>
To: "Dmitry E(dot) Oboukhov" <unera(at)debian(dot)org>
Cc: pgsql-ru-general(at)postgresql(dot)org
Subject: Re: Стоимость запроса в EXPLAIN с LIMIT и OFFSET
Date: 2011-11-28 07:41:18
Message-ID: 20111128074118.GG9642@dyatel.antar.bryansk.ru
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-ru-general

Если проходиться по всей таблице, то нет смысла делать limit/offset
кроме как для экономии памяти. Тут может помочь cursor:

DECLARE my_cursor CURSOR FOR SELECT ...
FETCH NEXT 10 FROM my_cursor;
FETCH ...
...
CLOSE my_cursor;

On Mon, 2011-11-28 at 01:00 +0400, Dmitry E. Oboukhov wrote:
> SELECT
> *
> FROM
> table
> ORDER BY
> column
> LIMIT
> 10
> OFFSET
> 100
>
> стоимость запроса растет вместе с ростом OFFSET.
>
>
> есть необходимость написать некую программу которая обойдет всю
> большую таблицу именно в порядке сортировки по конкретному столбику и
> пересчитает один из столбиков и сделает апдейт.
>
> индекс по column есть.
>
> если в начале работы основные затраты были на собственно расчеты. то
> ближе к середине в основном висит в БД тупо делая этот SELECT
> десятками секунд.
>
> Вопрос. как можно ускорить данный запрос?
> --
>
> . ''`. 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

--
Alexander M. Pravkin

In response to

Responses

Browse pgsql-ru-general by date

  From Date Subject
Next Message Dmitry E. Oboukhov 2011-11-28 19:28:41 Добавить что-то в ENUM
Previous Message Nikolay Samokhvalov 2011-11-27 21:17:36 Re: [pgsql-ru-general] Стоимость запроса в EXPLAIN с LIMIT и OFFSET