From: | Josh Berkus <josh(at)agliodbs(dot)com> |
---|---|
To: | Greg Spiegelberg <gspiegelberg(at)cranel(dot)com>, PgSQL Performance ML <pgsql-performance(at)postgresql(dot)org> |
Subject: | Re: Compare rows |
Date: | 2003-10-08 23:11:59 |
Message-ID: | 200310081611.59179.josh@agliodbs.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-performance |
Greg,
> You lost me on that one. What's a "vertical child table"?
Currently, you store data like this:
id address uptime speed memory tty
3 67.92 0.3 11.2 37 6
7 69.5 1.1 NULL 15 NULL
9 65.5 0.1 NULL 94 2
The most efficient way for you to store data would be like this:
main table
id address
3 67.92
7 69.5
9 65.5
child table
id value_type value
3 uptime 0.3
3 speed 11.2
3 memory 37
3 tty 6
7 uptime 1.1
7 memory 15
9 uptime 0.1
9 memory 94
9 tty 2
As you can see, the NULLs are not stored, making this system much more
efficient on storage space.
Tommorrow I'll (hopefully) write up how to query this for comparisons. It
would help if you gave a little more details about what specific comparison
you're doing, e.g. between tables or table to value, comparing just the last
value or all rows, etc.
--
-Josh Berkus
Aglio Database Solutions
San Francisco
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2003-10-08 23:28:42 | Re: Presentation |
Previous Message | Tom Lane | 2003-10-08 22:22:32 | Re: IMMUTABLE function's flag do not work: 7.3.4, plpgsql |