Thanks for the clarification.  Now I understand - it is an all or nothing due 
to required entries for each row version on the main table.
I will have to see if removing the constantly changing value from the indices 
will affect the performance of our selects.


-----Original Message-----
From: Kevin Grittner [mailto:kgri...@mail.com] 
Sent: Tuesday, January 22, 2013 5:23 PM
To: Benjamin Krajmalnik; pgsql-admin@postgresql.org
Subject: RE: [ADMIN] Schema design question as it pertains to performance

Benjamin Krajmalnik wrote:
> Kevin Grittner wrote:
>> Benjamin Krajmalnik wrote:

>>> I also assume that if no data has changed in an index, nothing is 
>>> done when the record is updated as pertains to the particular index 
>>> - am I correct in this assumption?
>> 
>> No. [...] If any indexed column is updated, [...] it needs new 
>> entries in all the indexes.

> That was my intent - if no column of an index changes in an update 
> then no changes are done on the index.

I don't think you understood -- if any column referenced by any index is 
updated, then all indexes must get a new entry for that row whether or not they 
include that column. The new version of the row will be at a new location, so 
new entries are needed in all indexes to point to the new location.

I did *not* say that only indexes referencing the updated column need a new 
entry.

-Kevin

-- 
Sent via pgsql-admin mailing list (pgsql-admin@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-admin

Reply via email to