Re: Optimising a two column OR check

Поиск
Список
Период
Сортировка
От Jeff Janes
Тема Re: Optimising a two column OR check
Дата
Msg-id CAMkU=1w1F0t7c78mJMF7DdBbk50aGy3-AROGzcbdPrS0ApmGAA@mail.gmail.com
обсуждение исходный текст
Ответ на Re: Optimising a two column OR check  (Justin Pryzby <pryzby@telsasoft.com>)
Ответы Re: Optimising a two column OR check
Список pgsql-performance
On Sat, Oct 12, 2019 at 10:43 AM Justin Pryzby <pryzby@telsasoft.com> wrote:
On Sat, Oct 12, 2019 at 04:39:56PM +0200, Ivan Voras wrote:
> With seqscan disabled, I get this plan on 9.6:
>  Bitmap Heap Scan on friend  (cost=8.42..19.01 rows=14 width=8)
...
> I expected to get an index-only scan in this situation, as that would be a
> very common query. Is there a way to actually make this sort of query
> resolvable with an index-only scan? Maybe a different table structure would
> help?

It would have to scan the entire index to find the cases where   user2_id=42 but user1_id is not constrained.  Technically User1_id would be constrained to be less than 42, but I don't think the planner will take that into account.


The v11 release notes have this relevant item:

https://www.postgresql.org/docs/11/release-11.html
|Allow bitmap scans to perform index-only scans when possible (Alexander Kuzmenkov)


But this is not one of those cases.  It is only possible when the only data needed is whether the row exists or not.

Cheers,

Jeff

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

Предыдущее
От: Andrew Gierth
Дата:
Сообщение: Re: Optimising a two column OR check
Следующее
От: MichaelDBA
Дата:
Сообщение: Re: Optimising a two column OR check