Re: pg_trgm and slow bitmap index scan plan

Поиск
Список
Период
Сортировка
От Merlin Moncure
Тема Re: pg_trgm and slow bitmap index scan plan
Дата
Msg-id CAHyXU0yXb2zOHQ3xyf-6HQE6ENkqxqdgpWqJCtZA_UOGc4wa_Q@mail.gmail.com
обсуждение исходный текст
Ответ на pg_trgm and slow bitmap index scan plan  (Mathieu De Zutter <mathieu@dezutter.org>)
Список pgsql-performance
On Tue, Aug 28, 2012 at 2:39 AM, Mathieu De Zutter <mathieu@dezutter.org> wrote:
> Hi all,
>
> I've been trying to apply pg_tgrm for the search-function of my application.
> The database fits a few times in the available RAM, and is mostly read-only.
> Plans, schema and configs in attachment. Postgresql version 9.1.4 on Debian.
>
> When just searching in one table, it behaves perfectly here. When I put
> constraints on multiple connected tables (performance and performer), it
> takes some bad decisions. Somehow the planner thinks that an index scan on a
> trigram index (on a string) is as fast as an index scan on a btree of an
> int. Because of that, it will combine both index scans into an "AND" bitmap
> index scan. Since this is done in a nested loop, the performance gets very
> bad. The trigram index scan should not be repeated as it is relatively slow
> and always the same query.
>
> When I disable bitmap scans, it will search on both tables and then hash
> everything together. This avoids launching the same index scan over and over
> again. This is much faster.
>
> Since my database is mostly in memory, I guess I could safely disable bitmap
> scan (or at least for some query), since I understand that this kind of scan
> is often a way to have a better IO performance. There's little IO in my
> setup.
> However, I'd rather get some help in fixing it right!

Yeah -- gist_trgm_ops is expensive and the planner is not taking that
into account.  I wonder if operator classes (pg_opclass) should have a
planner influencing costing component.

merlin


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

Предыдущее
От: Daniel Farina
Дата:
Сообщение: Re: Investigating the reason for a very big TOAST table size
Следующее
От: Merlin Moncure
Дата:
Сообщение: Re: Execution from java - slow