Re: Deleting millions of rows

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
Cc: Robert Haas <robertmhaas(at)gmail(dot)com>, Brian Cox <brian(dot)cox(at)ca(dot)com>, "pgsql-performance(at)postgresql(dot)org" <pgsql-performance(at)postgresql(dot)org>
Subject: Re: Deleting millions of rows
Date: 2009-02-03 21:17:29
Message-ID: 15177.1233695849@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-performance

Alvaro Herrera <alvherre(at)commandprompt(dot)com> writes:
> Robert Haas escribi:
>> Have you ever given any thought to whether it would be possible to
>> implement referential integrity constraints with statement-level
>> triggers instead of row-level triggers?

> Well, one reason we haven't discussed this is because our per-statement
> triggers are too primitive yet -- we don't have access to the list of
> acted-upon tuples. As soon as we have that we can start discussing this
> optimization.

I think the point is that at some number of tuples it's better to forget
about per-row tests at all, and instead perform the same whole-table
join that would be used to validate the FK from scratch. The mechanism
we lack is not one to pass the row list to a statement trigger, but one
to smoothly segue from growing a list of per-row entries to dropping
that list and queueing one instance of a statement trigger instead.

regards, tom lane

In response to

Responses

Browse pgsql-performance by date

  From Date Subject
Next Message Andrew Lazarus 2009-02-03 22:04:43 Re: Deleting millions of rows
Previous Message Scott Marlowe 2009-02-03 19:50:40 Re: SSD performance