Re: Insert query performance

From: David Rowley <dgrowleyml(at)gmail(dot)com>
To: sud <suds1434(at)gmail(dot)com>
Cc: pgsql-general <pgsql-general(at)lists(dot)postgresql(dot)org>
Subject: Re: Insert query performance
Date: 2024-08-19 11:03:32
Message-ID: CAApHDvq3mwhsiB69eXt6OJJL5=7UnbE74gWvWVJN57yEhrSkkg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On Mon, 19 Aug 2024 at 19:48, sud <suds1434(at)gmail(dot)com> wrote:
> In a version 15.4 postgres database, Is it possible that , if we have two big range partition tables with foreign key relationships between them, insert into the child table can cause slowness if we don't have foreign key index present in the child table? Basically it need to make sure the new row already added to parent partition table or not.

Having an index on the referencing columns is only useful for DELETEs
and UPDATEs affecting the foreign key column(s). For INSERTs to the
referencing table, technically having indexes there would only slow
down inserts due to the additional overhead of having to maintain the
index, however, the overhead of having the index might be fairly
minuscule when compared to performing a CASCADE UPDATE or DELETE to
the referencing table when the DDL is performed on the referenced
table.

> And if there is any possible way(example query tracing etc) to get the underlying system queries which gets triggered as part of the main insert query? For example in above scenario, postgres must be executing some query to check if the incoming row to the child table already exists in the parent table or not?

EXPLAIN ANALYZE will list the time it took to execute the foreign key
trigger in the "Trigger for constraint" section.

David

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Tom Lane 2024-08-19 12:50:51 Re: use of postgres reg* datatypes in user tables?
Previous Message Muhammad Ikram 2024-08-19 07:55:32 Re: Insert query performance