best paging strategies for large datasets?

Поиск
Список
Период
Сортировка
От Louis-David Mitterrand
Тема best paging strategies for large datasets?
Дата
Msg-id 20100512054144.GA8762@apartia.fr
обсуждение исходный текст
Ответы Re: best paging strategies for large datasets?  (Pavel Stehule <pavel.stehule@gmail.com>)
Re: best paging strategies for large datasets?  (Justin Graf <justin@magwerks.com>)
Re: best paging strategies for large datasets?  (Justin Graf <justin@magwerks.com>)
Re: best paging strategies for large datasets?  (silly sad <sad@bankir.ru>)
Список pgsql-sql
Hi,

I have a large dataset (page 1 at http://www.cruisefish.net/stat.md) and
am in the process of developping a pager to let users leaf through it
(30K rows).

Ideally I'd like to know when requesting any 'page' of data where I am
within the dataset: how many pages are available each way, etc.

Of course that can be done by doing a count(*) query before requesting a
limit/offset subset. But the main query is already quite slow, so I'd
like to minimize them.

But I am intrigued by window functions, especially the row_number() and
ntile(int) ones. 

Adding "row_number() over (order by <reverse query>)" to my query will
return the total number of rows in the first row, letting my deduce the
number of pages remaining, etc. row_number() apparently adds very little
cost to the main query.

And ntile(buckets) seems nice too but I need the total row count for it
to contain a 'page' number: ntile(row_count/page_size).

What better "paging" strategies are out there?

Thanks,


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

Предыдущее
От: Stuart
Дата:
Сообщение: Re: [Trigger] Help needed with NEW.* and TG_TABLE_NAME
Следующее
От: Pavel Stehule
Дата:
Сообщение: Re: best paging strategies for large datasets?