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:kgrittn@xxxxxxxx] Sent: Tuesday, January 22, 2013 5:23 PM To: Benjamin Krajmalnik; pgsql-admin@xxxxxxxxxxxxxx Subject: RE: 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@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-admin