pg.ddx.io  pgsql-performance@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Arjen van der Meijden <acmmailing@tweakers.net>
To: pgsql-performance@postgresql.org
Subject: Re: best db schema for time series data?
Date: Tue, 16 Nov 2010 12:18:35 +0100
Message-ID: <4CE2688B.2050000@tweakers.net> (raw)
In-Reply-To: <20101116105055.GA26129@apartia.fr>
References: <20101116105055.GA26129@apartia.fr>

On 16-11-2010 11:50, Louis-David Mitterrand wrote:
> I have to collect lots of prices from web sites and keep track of their
> changes. What is the best option?
>
> 1) one 'price' row per price change:
>
> 	create table price (
> 		id_price primary key,
> 		id_product integer references product,
> 		price integer
> 	);
>
> 2) a single 'price' row containing all the changes:
>
> 	create table price (
> 		id_price primary key,
> 		id_product integer references product,
> 		price integer[] -- prices are 'pushed' on this array as they change
> 	);
>
> Which is bound to give the best performance, knowing I will often need
> to access the latest and next-to-latest prices?

If you mostly need the last few prices, I'd definitaly go with the first 
aproach, its much cleaner. Besides, you can store a date/time per price, 
so you know when it changed. With the array-approach that's a bit harder 
to do.

If you're concerned with performance, introduce some form of a 
materialized view for the most recent price of a product. Or reverse the 
entire process and make a "current price"-table and a "price history"-table.

Best regards,

Arjen




view thread (14+ messages)  latest in thread

Message-ID: <4CE2688B.2050000@tweakers.net>
Permalink:  ../4CE2688B.2050000@tweakers.net/
Also on:    postgresql.org/message-id/4CE2688B.2050000@tweakers.net

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-performance@postgresql.org
  Cc: acmmailing@tweakers.net
  Subject: Re: best db schema for time series data?
  In-Reply-To: <4CE2688B.2050000@tweakers.net>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox