Performance of Inherits versus Views - Mailing list pgsql-performance

From dex
Subject Performance of Inherits versus Views
Date
Msg-id AIEFJBJIIGJICIKAMAAIEECJCFAA.dex@bridge3.com
Whole thread Raw
List pgsql-performance
Hello,

Is it more efficient to use a schema with Inherits or
schema with Views.  I can see logically how to use both
for my case and I'm trying to make a decision.  I would
guess that the overhead of the queries against
inherited tables is higher than queries against views,
but I don't know.

At the bottom of this message, I've included the cities /
capitals examples implemented both as schema using
inheritance and as schema using views.

Using the example, I could make queries such as:

SELECT name FROM capitals; -- capitals in inherited

or

SELECT name FROM capital_cities; -- capital cities is a view

But which one would be faster?  In my real world example,
I will either have one small base class table (i.e. cities in
the example) and many direct descendents of that base
table (e.g. capitals, beaches, national parks, suburbs
in the example).  Or, it could be implemented as one larger
(but not huge) lookup table with many views against
that lookup table.

What would you do?

Thanks!

--dex


--
--  Schema with Inherits
--
CREATE TABLE cities (
    name            text,
    population      float,
    altitude        int     -- (in ft)
  );

  CREATE TABLE capitals (
    state           char(2)
  ) INHERITS (cities);


--
--  Schema with View
--
CREATE TABLE all_cities (
    name            text,
    population      float,
    altitude        int,
    state           char(2)
);

CREATE VIEW just_cities AS SELECT
    all_cities.name,
    all_cities.population,
    all_cities.altitude
FROM all_cities;

-- or perhaps with a where clause, as in
CREATE VIEW capital_cities AS SELECT
    all_cities.name,
    all_cities.population,
    all_cities.altitude
FROM all_cities WHERE (all_cities.state IS NOT NULL);


pgsql-performance by date:

Previous
From: Tom Lane
Date:
Subject: Re: dum query plan: more info.
Next
From: Victor Danilchenko
Date:
Subject: Query speed problems