|
Home > Archive > PostgreSQL Performance > January 2006 > Materialized Views
You are viewing an archived Text-only version of the thread.
To view this thread in it's original format and/or if you want to reply to
this thread please [click here]
| Author |
Materialized Views
|
|
| Michael Riess 2006-01-16, 9:23 am |
| Hi,
I've been reading an interesting article which compared different
database systems, focusing on materialized views. I was wondering how
the postgresql developers feel about this feature ... is it planned to
implement materialized views any time soon? They would greatly improve
both performance and readability (and thus maintainability) of my code.
In particular I'm interested in a view which materializes whenever
queried, and is invalidated as soon as underlying data is changed.
Mike
| |
| Frank Wiles 2006-01-16, 11:29 am |
| On Mon, 16 Jan 2006 15:36:53 +0100
Michael Riess <mlriess@gmx.de> wrote:
> Hi,
>
> I've been reading an interesting article which compared different
> database systems, focusing on materialized views. I was wondering how
> the postgresql developers feel about this feature ... is it planned
> to implement materialized views any time soon? They would greatly
> improve both performance and readability (and thus maintainability)
> of my code.
>
> In particular I'm interested in a view which materializes whenever
> queried, and is invalidated as soon as underlying data is changed.
You can already build materialized views in PostgreSQL, but you
end up doing the "heavy lifting" yourself with triggers. You put
insert/update/delete triggers on the underlying tables of your
view that "do the right thing" in your materialized view table.
I wrote a blog entry about this recently,
http://revsys.com/blog/archive/9, where I used a very simple
materialized view to achieve the performance I needed. It has links
to the relevant documentation you'll need however to build triggers
for a more complex situation.
Hope this helps!
---------------------------------
Frank Wiles <frank@wiles.org>
http://www.wiles.org
---------------------------------
---------------------------(end of broadcast)---------------------------
TIP 9: In versions below 8.0, the planner will ignore your desire to
choose an index scan if your joining column's datatypes do not
match
| |
| me@alternize.com 2006-01-16, 11:29 am |
| hi mike
> In particular I'm interested in a view which materializes whenever
> queried, and is invalidated as soon as underlying data is changed.
from the german pgsql list earlier last week:
http://jonathangardner.net/PostgreS...s/matviews.html
this seems to be pretty much what you want (except you'll have to update
everything yourself). would be really nice if pgsql supports this "in-house"
cheers,
thomas
---------------------------(end of broadcast)---------------------------
TIP 4: Have you searched our list archives?
http://archives.postgresql.org
| |
| Michael Riess 2006-01-16, 11:29 am |
| Thanks!
Of course I know that I can build materialized views with triggers, but
so far I've avoided using triggers altogether ... I would really
appreciate something like "create view foo (select * from b) materialize
on query".
But I'll look into your blog entry, thanks again!
Mike
> On Mon, 16 Jan 2006 15:36:53 +0100
> Michael Riess <mlriess@gmx.de> wrote:
>
>
> You can already build materialized views in PostgreSQL, but you
> end up doing the "heavy lifting" yourself with triggers. You put
> insert/update/delete triggers on the underlying tables of your
> view that "do the right thing" in your materialized view table.
>
> I wrote a blog entry about this recently,
> http://revsys.com/blog/archive/9, where I used a very simple
> materialized view to achieve the performance I needed. It has links
> to the relevant documentation you'll need however to build triggers
> for a more complex situation.
>
> Hope this helps!
>
> ---------------------------------
> Frank Wiles <frank@wiles.org>
> http://www.wiles.org
> ---------------------------------
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 9: In versions below 8.0, the planner will ignore your desire to
> choose an index scan if your joining column's datatypes do not
> match
>
|
|
|
|
|