Re: Update table performance

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Aug 8, 2007, at 3:00 AM, Heikki Linnakangas wrote:

Erik Jones wrote:
Decibel! wrote:
I should mention that if you can handle splitting the
update into multiple transactions, that will help a
lot since it means you won't be doubling the size of
the table.

As I mentioned above, when you do an update you're actually inserting a new row and deleting the old one. That deleted row is still considered
part of the table (for reasons of concurrency, read up on the
concurrency chapter in the manual for the details) and once it is no
longer visible by any live transactions can be re-used by future
inserts. So, if you update one column on every row of a one million row
table all at once, you have to allocate and write out one million new
rows. But, if you do the update a quarter million at a time, the last
three updates would be able to re-use many of the rows deleted in
earlier updates.

Only if you vacuum between the updates.

This is true. In fact, the chapter on Routine Database Maintenance tasks that discusses vacuuming explains all of this.

Erik Jones

Software Developer | Emma®
erik@xxxxxxxxxx
800.595.4401 or 615.292.5888
615.292.0777 (fax)

Emma helps organizations everywhere communicate & market in style.
Visit us online at http://www.myemma.com



---------------------------(end of broadcast)---------------------------
TIP 7: You can help support the PostgreSQL project by donating at

               http://www.postgresql.org/about/donate


[Postgresql General]     [Postgresql PHP]     [PHP Users]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Yosemite]

  Powered by Linux