Re: column updates

From: Ben <bench(at)silentmedia(dot)com>
To: Martijn van Oosterhout <kleptog(at)svana(dot)org>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: column updates
Date: 2004-10-29 23:03:45
Message-ID: Pine.LNX.4.44.0410291551210.3308-100000@localhost.localdomain
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Thanks. Good to hear that the easiest solution for me is also the fastest.

On Fri, 29 Oct 2004, Martijn van Oosterhout wrote:

> The number of dead tuples is the number of UPDATE statements you make.
> You if you just do a straight UPDATE x set f1=x, f2=y, ... that will be
> as optimal as you can get.
>
> The only exception may be toasted fields, which would only apply if you
> had fields with more than 2K of data or so...
>
> Hope this helps,
>
> On Fri, Oct 29, 2004 at 12:24:35PM -0700, Ben wrote:
> > I'm designing a system where I'll be making frequent updates to rows, but
> > some columns will change far less frequently than others. All columns will
> > be read with equal frequency, though probably by means of a materialized
> > view. Updates will happen via a stored proc.
> >
> > Which makes the most sense?
> >
> > 1. Blindly overwrite the value for all columns, even columns that haven't
> > changed.
> >
> > 2. Compare the current value and update each column at a time, leaving
> > unchanged columns alone.
> >
> > 3. Break out my tables more, so that infrequently updated columns are in
> > different tables.
> >
> >
> > I'm thinking that 1 and 2 are similar and less complex than 3, but might
> > result in more dead tuples. 2 and 3 will have to look up values before
> > updates can happen. I don't know if 2 has any advantage over 1. 1 is
> > certainly the simpliest.
> >
> >
> > ---------------------------(end of broadcast)---------------------------
> > TIP 5: Have you checked our extensive FAQ?
> >
> > http://www.postgresql.org/docs/faqs/FAQ.html
>
> --
> Martijn van Oosterhout <kleptog(at)svana(dot)org> http://svana.org/kleptog/
> > Patent. n. Genius is 5% inspiration and 95% perspiration. A patent is a
> > tool for doing 5% of the work and then sitting around waiting for someone
> > else to do the other 95% so you can sue them.
>

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Paul Tillotson 2004-10-29 23:43:07 Re: SELECT a value from various tables depending on a column
Previous Message Tom Lane 2004-10-29 22:27:46 Re: XMIN/xid vs UNION