Re: Table Relationships

From: Josh Berkus <josh(at)agliodbs(dot)com>
To: Andrew Sullivan <andrew(at)libertyrms(dot)info>, pgsql-performance(at)postgresql(dot)org
Subject: Re: Table Relationships
Date: 2003-05-30 19:54:26
Message-ID: 200305301254.26283.josh@agliodbs.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-performance

Andrew,

> Sure, but if performance is an important goal for certain kinds of
> SELECTs, using a trigger at insert or update to do denormalising is
> perhaps an acceptable approach. It's obvious that in most cases,
> denormalising instead of optimising your normalisation is silly. But
> if you need something to return in, say, 2ms most of the time, and it
> requires a wide variety of data, denormalising is a good idea.

I've done this plenty of times ... but what you're talking about is more of a
"materialized view" than denormalized data. The data is still stored in
normal form; it is just distilled for a particular view and saved on disk for
quick reference. This is often a good approach with performance-sensitive,
complex databases.

> It is, of course, contrary to the RDBMS-y mind to denormalise. But
> there are (rare) times when it's a good idea, and I hate to see it
> rejected out of hand in such cases.

There is a big difference between denormalizing normalized data and storing
your data in denormalized (basically flat file) form in the first place.

--
-Josh Berkus
Aglio Database Solutions
San Francisco

In response to

Browse pgsql-performance by date

  From Date Subject
Next Message Yusuf 2003-05-30 20:33:07 Enabling and Disabling Sequencial Scan
Previous Message scott.marlowe 2003-05-30 19:33:19 Re: Hardware advice