From: | mark(at)mark(dot)mielke(dot)cc |
---|---|
To: | Zeugswetter Andreas DCP SD <ZeugswetterA(at)spardat(dot)at> |
Cc: | Mark Woodward <pgsql(at)mohawksoft(dot)com>, Martijn van Oosterhout <kleptog(at)svana(dot)org>, Zdenek Kotala <zdenek(dot)kotala(at)sun(dot)com>, pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: update/insert, |
Date: | 2006-07-05 15:25:18 |
Message-ID: | 20060705152518.GB11834@mark.mielke.cc |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Wed, Jul 05, 2006 at 04:59:52PM +0200, Zeugswetter Andreas DCP SD wrote:
> > OK, but the point of the question is that constantly updating
> > a single row steadily degrades performance, would
> > delete/insery also do the same?
> Yes, there is currently no difference (so you should do the update).
> Of course performance only degrades if vaccuum is not setup correctly.
As Martijn pointed out, there are two differences. One almost
insignificant having to do with internal linkage. The other that
multiples queries are being executed. I would presume with separate
query plans, and so on, therefore you should do the update.
For the case you are talking about, the difference is:
1) Delete which will always succeed
2) Insert that will probably succeed
Vs:
1) Update which if it succeeds, will stop
2) Insert that will probably succeed
In the first case, you are always executing two queries. In the second,
you can sometimes get away with only one query.
Note what other people mentioned, though, that neither of the above is
safe against parallel transactions updating or inserting rows with the
same key.
In both cases, a 'safe' implementation should loop if 2) fails and
restart the operation.
Cheers,
mark
--
mark(at)mielke(dot)cc / markm(at)ncf(dot)ca / markm(at)nortel(dot)com __________________________
. . _ ._ . . .__ . . ._. .__ . . . .__ | Neighbourhood Coder
|\/| |_| |_| |/ |_ |\/| | |_ | |/ |_ |
| | | | | \ | \ |__ . | | .|. |__ |__ | \ |__ | Ottawa, Ontario, Canada
One ring to rule them all, one ring to find them, one ring to bring them all
and in the darkness bind them...
From | Date | Subject | |
---|---|---|---|
Next Message | Joshua D. Drake | 2006-07-05 15:52:12 | Re: update/insert, |
Previous Message | Zeugswetter Andreas DCP SD | 2006-07-05 14:59:52 | Re: update/insert, |