Skip site navigation (1) Skip section navigation (2)

Performance of Inherits versus Views

From: "dex" <dex(at)bridge3(dot)com>
To: <pgsql-performance(at)postgresql(dot)org>
Subject: Performance of Inherits versus Views
Date: 2003-04-17 17:48:16
Message-ID: AIEFJBJIIGJICIKAMAAIEECJCFAA.dex@bridge3.com (view raw or flat)
Thread:
Lists: 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

Next:From: Victor DanilchenkoDate: 2003-04-17 19:17:01
Subject: Query speed problems
Previous:From: Tom LaneDate: 2003-04-17 16:31:49
Subject: Re: dum query plan: more info.

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group