Performance of LIKE/NOT LIKE when used in single query

Поиск
Список
Период
Сортировка
От Ed Felstein
Тема Performance of LIKE/NOT LIKE when used in single query
Дата
Msg-id CAJpH9Wk3z+iuxFznSgS57wyAMh5dkx9+LPym=y0FEHq0oVWFRQ@mail.gmail.com
обсуждение исходный текст
Ответы Re: Performance of LIKE/NOT LIKE when used in single query
Re: Performance of LIKE/NOT LIKE when used in single query
Список pgsql-performance
Hello,
First time poster here.  Bear with me.
Using PostgreSQL 9.5
I have a situation where I have a LIKE and a NOT LIKE in the same query to identify strings in a varchar field.  Since I am using wildcards, I have created a GIN index on the field in question, which makes LIKE '%xxxx%' searches run very fast.  The problem is the NOT LIKE phrases, which (as would be expected) force a sequential scan.  Being that we're talking about millions of records, this is not desirable.
Here's the question...
Is there a way, using a single query, to emulate the process of running the LIKE part first, then running the NOT LIKE just on those results?  I can accomplish this in a multi-step process by separating the single query into two queries, populating a temporary table with the results of the LIKEs, then running the NOT LIKEs on the temporary table.  For various reasons, this is not the ideal solution for me.
Or is there another approach that would accomplish the same thing with the same level of performance?

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

Предыдущее
От: Антон Бушмелев
Дата:
Сообщение: Re: 9.4 -> 9.5 regression with queries through pgbouncer on RHEL 6
Следующее
От: "David G. Johnston"
Дата:
Сообщение: Re: Performance of LIKE/NOT LIKE when used in single query