From: | PFC <lists(at)boutiquenumerique(dot)com> |
---|---|
To: | "Greg Stark" <gsstark(at)mit(dot)edu>, "Merlin Moncure" <merlin(dot)moncure(at)rcsonline(dot)com> |
Cc: | "Andrei Bintintan" <klodoma(at)ar-sd(dot)net>, pgsql-performance(at)postgresql(dot)org |
Subject: | Re: [SQL] OFFSET impact on Performance??? |
Date: | 2005-01-26 12:58:18 |
Message-ID: | opsk7nngxwth1vuj@musicbox |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-performance |
Supposing your searches display results which are rows coming from one
specific table, you could create a cache table :
search_id serial primary key
index_n position of this result in the global result set
result_id id of the resulting row.
Then, making a search with 50k results would INSERT INTO cache ... SELECT
FROM search query, with a way to set the index_n column, which can be a
temporary sequence...
Then to display your pages, SELECT from your table with index_n BETWEEN so
and so, and join to the data table.
If you're worried that it might take up too much space : store an integer
array of result_id instead of just a result_id ; this way you insert fewer
rows and save on disk space. Generate it with a custom aggregate... then
just grab a row from this table, it contains all the id's of the rows to
display.
From | Date | Subject | |
---|---|---|---|
Next Message | Steve Poe | 2005-01-26 13:07:28 | Re: Ideal disk setup for Postgresql 7.4? |
Previous Message | Leeuw van der, Tim | 2005-01-26 10:36:35 | Re: [SQL] OFFSET impact on Performance??? |