Re: One table or many tables for data set

From: Joe Conway <mail(at)joeconway(dot)com>
To: "Castle, Lindsay" <lindsay(dot)castle(at)eds(dot)com>
Cc: pgsql-performance(at)postgresql(dot)org
Subject: Re: One table or many tables for data set
Date: 2003-07-23 01:36:20
Message-ID: 3F1DE694.30201@joeconway.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-performance

Castle, Lindsay wrote:
> The data structure looks like this:
> element
> date
> num1
> num2
> num3
> num4
> units
>
> There are approx 12,000 distinct elements for a total of about 6 million
> rows of data.

Ahh, that helps! So are the elements evenly distributed, i.e. are there
approx 500 rows of each element? If so, it should be plenty quick to put
all the data in one table with an index on "element" (and maybe a
multicolumn key, depending on other factors).

> The scanning technology I want to use may need a different number of rows
> and different columns depending on the scan formula;
> eg scan1 may need num1, num2 and num3 from the last 200 rows for
> element "x"
> scan2 may need num1, units from the last 10 rows for element "y"

When you say "last X rows", do you mean sorted by "date"? If so, you
might want that index to be on (element, date). Then do:

SELECT num1, num2, num3 FROM mytable WHERE element = 'an_element' order
by date DESC LIMIT 20;

Replace num1, num2, num3 by whatever columns you want, and "LIMIT X" as
the number of rows you want.

HTH,

Joe

In response to

Browse pgsql-performance by date

  From Date Subject
Next Message Castle, Lindsay 2003-07-23 01:47:29 Re: One table or many tables for data set
Previous Message Castle, Lindsay 2003-07-23 01:25:07 Re: One table or many tables for data set