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 по дате отправления: