Re: best way to fetch next/prev record based on index

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: best way to fetch next/prev record based on index
Дата
Msg-id 28700.1090941241@sss.pgh.pa.us
обсуждение исходный текст
Ответ на best way to fetch next/prev record based on index  ("Merlin Moncure" <merlin.moncure@rcsonline.com>)
Список pgsql-performance
"Merlin Moncure" <merlin.moncure@rcsonline.com> writes:
> So, for a table t with a three part key over columns a,b,c, the query to
> read the next value from t for given values a1, b1, c1 is

> select * from t where
>     a >= a1 and
>      (a >  a1 or b >= b1) and
>      (a >  a1 or b > b1 or c > c1)

> In about 95% of cases, the planner correctly selects the index t(a,b,c)
> and uses it.

I'm surprised it's that good.  Why not do

    select * from t where a >= a1 and b >= b1 and c >= c1
    order by a,b,c
    limit 1 offset 1;

which has a much more obvious translation to an indexscan.

            regards, tom lane

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

Предыдущее
От: Markus Schaber
Дата:
Сообщение: Automagic tuning
Следующее
От: "Merlin Moncure"
Дата:
Сообщение: Re: best way to fetch next/prev record based on index