Evaluating boolean formula: slow performance

From: Jörg Kiegeland <kiegeland(at)ikv(dot)de>
To: pgsql-performance(at)postgresql(dot)org
Subject: Evaluating boolean formula: slow performance
Date: 2008-01-11 17:06:03
Message-ID: 4787A1FB.2050808@ikv.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-performance

I have the following problem:

In my table T, there are a fixed number of boolean columns, C1, .., Cn.

Now, a common query is to search in this table for tuples fullfilling an
arbitrary boolean condition (however only using AND and OR), e.g.

SELECT * FROM T WHERE (C1 OR C2) AND (C3 OR C4 AND C5) OR C6

For every boolean column, I created an index, e.g.

CREATE INDEX columnIndexForC2 ON DIM (C2);

Now I did performance tests and got response times for such a query
which are worser than linear response time..

However I also realized that with boolean queries which use only OR or
use only AND, the response time is very fast, i.e. it seems to be
constant, regardless of how many tuples I add to the table.

So my question is: How can I get an acceptable response time for
arbitrary boolean terms?

Thanks

Responses

Browse pgsql-performance by date

  From Date Subject
Next Message Jörg Kiegeland 2008-01-11 17:42:13 Re: Evaluating boolean formula: slow performance
Previous Message Michael Stone 2008-01-11 16:27:49 Re: Best way to index IP data?