Re: how delete/insert/update affects select performace?

From: "Kevin Grittner" <Kevin(dot)Grittner(at)wicourts(dot)gov>
To: "Anibal David Acosta" <aa(at)devshock(dot)com>, <pgsql-performance(at)postgresql(dot)org>
Cc: "'Tomas Vondra'" <tv(at)fuzzy(dot)cz>
Subject: Re: how delete/insert/update affects select performace?
Date: 2011-09-08 17:00:32
Message-ID: 4E68AE600200002500040F47@gw.wicourts.gov
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-performance

"Anibal David Acosta" <aa(at)devshock(dot)com> wrote:

> Tthe reason I add the enabled column to index is because a select
> won't need to read the table to get this value

That's not true in PostgreSQL, although there is an effort to
support that optimization, at least to some degree. In all current
versions of PostgreSQL, it will always need to read the heap to
determine whether the index entry is pointing at a version of the
row which is visible to your transaction. Adding the enabled column
to an index will prevent faster HOT updates to that column.

> My select is : exists(select * from table where account_id=X and
> service_id=Y and enabled='T')

On the other hand, if you have very many rows where enabled is not
'T', and you are generally searching for where enabled = 'T', you
might want a partial index (an index with a WHERE clause in its
definition). If enabled only has two states, you will probably get
better performance using a boolean column.

-Kevin

In response to

Responses

Browse pgsql-performance by date

  From Date Subject
Next Message Merlin Moncure 2011-09-08 17:35:58 Re: how fast index works?
Previous Message Anibal David Acosta 2011-09-08 16:40:07 Re: how delete/insert/update affects select performace?