| From: | Tony Theodore <tony(dot)theodore(at)gmail(dot)com> |
|---|---|
| To: | Merlin Moncure <mmoncure(at)gmail(dot)com> |
| Cc: | "pgsql-general(at)postgresql(dot)org general" <pgsql-general(at)postgresql(dot)org> |
| Subject: | Re: Composite types or composite keys? |
| Date: | 2013-11-18 03:33:21 |
| Message-ID: | 56EBD949-93BD-4152-95FA-8C5BB22319E1@gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-general |
On 16 Nov 2013, at 3:01 am, Merlin Moncure <mmoncure(at)gmail(dot)com> wrote:
>
> Well, here are the downsides. Composite types:
> *) are more than the sum of their parts performance-wise. So there is
> a storage penalty in both the heap and the index
> *) can't leverage indexes that are querying only part of the key
> *) will defeat the implicit 'per column NOT NULL constraint' of the primary keys
Thanks, I didn’t see any of those - I was thinking that they were like pseudo tables or column templates.
> *) are not very well supported in certain clients -- for example JAVA.
> you can always deal with them as text, but that can be a headache.
>
> ...plus some other things I didn't think about. If you can deal with
> those constraints, it might be interesting to try a limited
> experiment. The big upside of composite types is that you can add
> attributes on the fly without rebuilding the index. Test carefully.
I’ll give it a try - I might stick to using plain or inherited tables for the main storage and then experiment with composite types for functions and other aggregate tables that are used internally.
Cheers,
Tony
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Tom Lane | 2013-11-18 03:38:47 | Re: What does this error message mean? |
| Previous Message | Hengky Liwandouw | 2013-11-18 03:29:07 | Sum 2 tables based on key from other table |