Skip site navigation (1) Skip section navigation (2)

faster INSERT with possible pre-existing row?

From: Dan Harris <fbsd(at)drivefaster(dot)net>
To: pgsql-performance(at)postgresql(dot)org
Subject: faster INSERT with possible pre-existing row?
Date: 2005-07-26 16:50:14
Message-ID: AB60A4E4-1DF1-459E-8866-007810D68419@drivefaster.net (view raw or flat)
Thread:
Lists: pgsql-performance
I am working on a process that will be inserting tens of million rows  
and need this to be as quick as possible.

The catch is that for each row I could potentially insert, I need to  
look and see if the relationship is already there  to prevent  
multiple entries.  Currently I am doing a SELECT before doing the  
INSERT, but I recognize the speed penalty in doing to operations.  I  
wonder if there is some way I can say "insert this record, only if it  
doesn't exist already".  To see if it exists, I would need to compare  
3 fields instead of just enforcing a primary key.

Even if this could be a small increase per record, even a few percent  
faster compounded over the whole load could be a significant reduction.

Thanks for any ideas you might have.

-Dan

Responses

pgsql-performance by date

Next:From: Chris BrowneDate: 2005-07-26 16:51:14
Subject: Re: Cheap RAM disk?
Previous:From: John A MeinelDate: 2005-07-26 16:34:37
Subject: Cheap RAM disk?

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group