Re: update/insert, delete/insert efficiency WRT vacuum and - Mailing list pgsql-hackers

From Zeugswetter Andreas DCP SD
Subject Re: update/insert, delete/insert efficiency WRT vacuum and
Date
Msg-id E1539E0ED7043848906A8FF995BDA579011F0970@m0143.s-mxs.net
Whole thread Raw
In response to Re: update/insert, delete/insert efficiency WRT vacuum and  (Martijn van Oosterhout <kleptog@svana.org>)
Responses Re: update/insert, delete/insert efficiency WRT vacuum  (Hannu Krosing <hannu@skype.net>)
List pgsql-hackers
> > >Is there a difference in PostgreSQL performance between these two
> > >different strategies:
> > >
> > >
> > >if(!exec("update foo set bar='blahblah' where name = 'xx'"))
> > >    exec("insert into foo(name, bar) values('xx','blahblah'"); or

In pg, this strategy is generally more efficient, since a pk failing
insert would create
a tx abort and a heap tuple. (so in pg, I would choose the insert first
strategy only when
the insert succeeds most of the time (say > 95%))

Note however that the above error handling is not enough, because two
different sessions
can still both end up trying the insert (This is true for all db systems
when using this strategy).

Andreas


pgsql-hackers by date:

Previous
From: paolo romano
Date:
Subject: Re: MultiXactID Wrap-Around
Next
From: Tom Lane
Date:
Subject: Re: system info functions