From: | Craig Ringer <craig(at)postnewspapers(dot)com(dot)au> |
---|---|
To: | searchelite <searchelite(at)gmail(dot)com> |
Cc: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: mirroring table |
Date: | 2008-08-14 06:04:20 |
Message-ID: | 48A3CAE4.7080806@postnewspapers.com.au |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
searchelite wrote:
> Hi all..how can i mirroring table in postgresql?
> Let say i have a transaction table updated everyday, i want to mirror that
> table so that the other table only store the latest updated day records..
> I hope you can understand my question..
It sounds like what you want is to have a table that contains a full
history of records, plus another table that contains only the records
from the first table that were inserted/updated today.
If that is what you mean, there are several ways to do it, with
different advantages and disadvantages.
You can treat your smaller table as a materialized view, where you use
triggers to update it and run a batch job (with cron or similar) every
night to clear it.
Another way is to make it a normal view, possibly with rules in place to
make it updatable. You could use a partial index on the primary key
that's restricted to tuples inserted/updated more recently than a given
date to improve performance of the view.
For that matter, you could even use table partitioning to do it, though
this would involve a bit of manual (or scripted) maintenance.
Anyway, this is all speculation if I've missed the point of your
question. If I'm mistaken about what you meant, perhaps you could
explain in a little more detail?
--
Craig Ringer
From | Date | Subject | |
---|---|---|---|
Next Message | Gnanavel Shanmugam | 2008-08-14 06:41:21 | Re: Need help returning record set from a dynamic sql query |
Previous Message | Dale Harris | 2008-08-14 05:32:11 | cannot use result of (insert .. returning) |