Re: Very slow DELETEs with foreign keys

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Thom Brown <thom(at)linux(dot)com>
Cc: PGSQL Mailing List <pgsql-general(at)postgresql(dot)org>
Subject: Re: Very slow DELETEs with foreign keys
Date: 2016-02-08 14:52:34
Message-ID: 25220.1454943154@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Thom Brown <thom(at)linux(dot)com> writes:
> I've just noticed a general delete performance issue while testing a
> patch, and this can be recreated on all recent major versions.

> I have 2 tables:

> CREATE TABLE countries (
> country text PRIMARY KEY,
> continent text
> );

> CREATE TABLE contacts (
> id serial PRIMARY KEY,
> first_name text,
> last_name text,
> age integer,
> country text REFERENCES countries (country)
> );

Apparently, you don't have an index on the referencing column.
That makes insertions into contacts faster, at the cost of making
deletions from countries much slower. Since there are cases where
that's a reasonable tradeoff, we don't prohibit you from omitting
the index ... but it is a pretty standard foot-gun.

regards, tom lane

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Thom Brown 2016-02-08 15:02:48 Re: Very slow DELETEs with foreign keys
Previous Message Tom Lane 2016-02-08 14:49:48 Re: COALESCE requires NULL from scalar subquery has a type