Performance of Inherits versus Views
От | dex |
---|---|
Тема | Performance of Inherits versus Views |
Дата | |
Msg-id | AIEFJBJIIGJICIKAMAAIEECJCFAA.dex@bridge3.com обсуждение исходный текст |
Список | 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 по дате отправления: