Re: Queries with conditions using bitand operator

Поиск
Список
Период
Сортировка
От Andy Colson
Тема Re: Queries with conditions using bitand operator
Дата
Msg-id 4C3CF478.1060602@squeakycode.net
обсуждение исходный текст
Ответ на Queries with conditions using bitand operator  (Elias Ghanem <e.ghanem@acteos.com>)
Список pgsql-performance
On 07/13/2010 06:48 AM, Elias Ghanem wrote:
> Hi,
> I have table "ARTICLE" containing a String a field "STATUS" that represents a number in binary format (for ex:
10011101).
> My application issues queries with where conditions that uses BITAND operator on this field (for ex: select * from
articlewhere status & 4 = 4). 
> Thus i'm facing performance problemes with these select queries: the queries are too slow.
> Since i'm using the BITAND operator in my conditions, creating an index on the status filed is useless
> and since the second operator variable (status & 4 = 4; status & 8 = 8; status & 16 = 16...) a functional index is
alsousless (because a functional index require the use of a function that accept only table column as input parameter:
constantsare not accepted). 
> So is there a way to enhance the performance of these queries?
> Thanks,
> Elias
>

How many flags are there?  If its not too many you could make a separate column for each... but then that would be lots
ofindexes too... 

One other thought I had was to make it a text column, turn the flags into words (space separated) and use full text
indexes.

I played around with int's and string's but I couldnt find a way using the & operator.

-Andy

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

Предыдущее
От: Magnus Hagander
Дата:
Сообщение: Re: Pooling in Core WAS: Need help in performance tuning.
Следующее
От: Andy Colson
Дата:
Сообщение: Re: performance on new linux box