Re: Foreign key slows down copy/insert - Mailing list pgsql-performance

From Stephan Szabo
Subject Re: Foreign key slows down copy/insert
Date
Msg-id 20050414074154.M38465@megazone.bigpanda.com
Whole thread Raw
In response to Re: Foreign key slows down copy/insert  (Richard van den Berg <richard.vandenberg@trust-factory.com>)
Responses Re: Foreign key slows down copy/insert
List pgsql-performance
On Thu, 14 Apr 2005, Richard van den Berg wrote:

> Hello Chris,
>
> Thanks for your answers.
>
> Christopher Kings-Lynne wrote:
> > Deferring makes no difference to FK checking speed...
>
> But why then is the speed acceptable if I copy and then manually add the
> FK? Is the check done by the FK so much different from when it is done
> automatically using an active deffered FK?

Yes, because currently the check done by the FK on an insert type activity
is a per-row inserted check while the check done when adding a FK acts on
the entire table in a go which allows better optimization of that case
(while generally being worse on small number inserts especially on large
tables).  At some point, if we can work out how to do all the semantics
properly, it'd probably be possible to replace the insert type check with
a per-statement check which would be somewhere in between.  That requires
access to the affected rows inside the trigger which I don't believe is
available currently.

pgsql-performance by date:

Previous
From: Tom Lane
Date:
Subject: Re: How to improve db performance with $7K?
Next
From: "Joel Fradkin"
Date:
Subject: Re: speed of querry?