Re: Thousands of tables versus on table?

From: Scott Marlowe <smarlowe(at)g2switchworks(dot)com>
To: Gregory Stark <stark(at)enterprisedb(dot)com>
Cc: Thomas Andrews <tandrews(at)soliantconsulting(dot)com>, Mark Lewis <mark(dot)lewis(at)mir3(dot)com>, pgsql-performance(at)postgresql(dot)org
Subject: Re: Thousands of tables versus on table?
Date: 2007-06-04 20:20:55
Message-ID: 46647427.4030103@g2switchworks.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-performance

Gregory Stark wrote:
> "Thomas Andrews" <tandrews(at)soliantconsulting(dot)com> writes:
>
>
>> I guess my real question is, does it ever make sense to create thousands of
>> tables like this?
>>
>
> Sometimes. But usually it's not a good idea.
>
> What you're proposing is basically partitioning, though you may not actually
> need to put all the partitions together for your purposes. Partitioning's main
> benefit is in the management of the data. You can drop and load partitions in
> chunks rather than have to perform large operations on millions of records.
>
> Postgres doesn't really get any faster by breaking the tables up like that. In
> fact it probably gets slower as it has to look up which of the thousands of
> tables you want to work with.
>

That's not entirely true. PostgreSQL can be markedly faster using
partitioning as long as you always access it by referencing the
partitioning key in the where clause. So, if you partition the table by
date, and always reference it with a date in the where clause, it will
usually be noticeably faster. OTOH, if you access it without using a
where clause that lets it pick partitions, then it will be slower than
one big table.

So, while this poster might originally think to have one table for each
user, resulting in thousands of tables, maybe a compromise where you
partition on userid ranges would work out well, and keep each partition
table down to some 50-100 thousand rows, with smaller indexes to match.

In response to

Responses

Browse pgsql-performance by date

  From Date Subject
Next Message PFC 2007-06-04 20:21:18 Re: Thousands of tables versus on table?
Previous Message Gregory Stark 2007-06-04 20:18:43 Re: Thousands of tables versus on table?