Re: query planner and scanning methods

Поиск
Список
Период
Сортировка
От Richard Broersma
Тема Re: query planner and scanning methods
Дата
Msg-id 396486430809231507t46edf20fxab469bedbd78e8cc@mail.gmail.com
обсуждение исходный текст
Ответ на query planner and scanning methods  (Colin Copeland <copelco@caktusgroup.com>)
Ответы Re: query planner and scanning methods  (Colin Copeland <copelco@caktusgroup.com>)
Список pgsql-performance
On Tue, Sep 23, 2008 at 2:22 PM, Colin Copeland <copelco@caktusgroup.com> wrote:
> dimension=# EXPLAIN ANALYZE
> SELECT   DISTINCT ON ("dimension_book"."call")
>         "dimension_book"."title"
> FROM     "dimension_book"
>         INNER JOIN "dimension_library_books"
>           ON ("dimension_book"."id" = "dimension_library_books"."book_id")
> WHERE    ("dimension_book"."call" >= 'PA0000'
>          AND "dimension_library_books"."library_id" IN (12,15,20))
> ORDER BY "dimension_book"."call" ASC
> LIMIT 10 OFFSET 100;

Ya offset works by scanning over the first 100 rows.  When the offsets
get big, it become a performance looser.

You can guarantee a faster index scan if you recall the last 10th
value from the previous query.  Then remove the offset predicate and
replace it with the following WHERE clause:

WHERE ...
AND dimension_book.call > _last_queried_10th_row-dimension_book_call,
...
LIMIT 10;


--
Regards,
Richard Broersma Jr.

Visit the Los Angeles PostgreSQL Users Group (LAPUG)
http://pugs.postgresql.org/lapug

В списке pgsql-performance по дате отправления:

Предыдущее
От: Colin Copeland
Дата:
Сообщение: query planner and scanning methods
Следующее
От: Colin Copeland
Дата:
Сообщение: Re: query planner and scanning methods