Re: 7.4 - FK constraint performance
Stephan Szabo <sszabo@megazone.bigpanda.com>
From: Stephan Szabo <sszabo@megazone.bigpanda.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Rod Taylor <rbt@rbt.ca>, ow <oneway_111@yahoo.com>, pgsql-sql@postgresql.org
Date: 2004-02-13T15:02:51Z
Lists: pgsql-hackers, pgsql-sql
On Thu, 12 Feb 2004, Tom Lane wrote: > Rod Taylor <rbt@rbt.ca> writes: > > Statistics say there are 10 values. Statistics list the 10 most common > > values (all of them). Given this, would it not be reasonable to assume > > that 239 is a recent addition (if there at all) to the table and not > > very common? > > We don't know that it's 239 when we make the plan. In order to know > that, we'd have to abandon caching of RI check query plans and re-plan > for each row. That strikes me as inevitably a losing proposition. One thing is that IIRC we're going to ask for only one row when we do the SPI_execp_current. However, unless I misremember, the behavior of for update and limit means that saying limit 1 is potentially unsafe (if you block on a row that goes away). Is there anyway for us to let the planner know this?