"Announce" <truthhurts@insightbb.com> writes:
> How does Postgres internally handle inheritance under the following
> scenario?
> Using sample tables similar to a previous post:
> CREATE TABLE employee(id primary key, name varchar, salary numeric(6,2));
> CREATE TABLE programmer(language varchar, project varchar) INHERITS
> (employee);
> CREATE TABLE representative (region varchar) INHERITS (employee);
> Let's say for example's sake, there are 10 million rows of PROGRAMMER data
> but only 100 rows of representative data. Will a query (select, update,
> insert, etc) on the REPRESENTATIVE table take a performance hit because of
> this?
No.
> It seems like the child-table is really not concrete.
What makes you think that?
In this example, queries against EMPLOYEE take a performance hit due to
the existence of the child tables, because they end up scanning all
three tables. Queries directly against a child table do not notice the
inheritance relationship at all.
regards, tom lane