Re: Compare rows - Mailing list pgsql-performance

From Josh Berkus
Subject Re: Compare rows
Date
Msg-id 200310081611.59179.josh@agliodbs.com
Whole thread Raw
In response to Re: Compare rows  (Greg Spiegelberg <gspiegelberg@cranel.com>)
Responses Re: Compare rows
Re: Compare rows
List 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


pgsql-performance by date:

Previous
From: Tom Lane
Date:
Subject: Re: IMMUTABLE function's flag do not work: 7.3.4, plpgsql
Next
From: Tom Lane
Date:
Subject: Re: Presentation