Re: Issue for partitioning with extra check constriants

From: Josh Berkus <josh(at)agliodbs(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: pgsql-performance(at)postgresql(dot)org
Subject: Re: Issue for partitioning with extra check constriants
Date: 2010-10-04 18:34:03
Message-ID: 4CAA1E1B.8080505@agliodbs.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-performance


> And your point is? The design center for the current setup is maybe 5
> or 10 partitions. We didn't intend it to be used for more partitions
> than you might have spindles to spread the data across.

Where did that come from? It certainly wasn't anywhere when the feature
was introduced. Simon intended for this version of partitioning to
scale to 100-200 partitions (and it does, provided that you dump all
other table constraints), and partitioning has nothing to do with
spindles. I think you're getting it mixed up with tablespaces.

The main reason for partitioning is ease of maintenance (VACUUM,
dropping partitions, etc.) not any kind of I/O optimization.

I'd like to add the following statement to our docs on partitioning, in
section 5.9.4:

=====

Constraint exclusion is tested for every CHECK constraint on the
partitions, even CHECK constraints which have nothing to do with the
partitioning scheme. This can add siginficant extra planner time,
especially if your partitions have CHECK constraints which are costly to
evaluate. For performance, it can be a good idea to eliminate all extra
CHECK constraints on partitions or to re-implement them as triggers.

=====

>In case you haven't noticed, we have very finite
> amounts of manpower that's competent to do planner surgery.

Point.

--
-- Josh Berkus
PostgreSQL Experts Inc.
http://www.pgexperts.com

In response to

Responses

Browse pgsql-performance by date

  From Date Subject
Next Message Dan Ports 2010-10-04 18:35:42 Re: MIT benchmarks pgsql multicore (up to 48)performance
Previous Message Greg Stark 2010-10-04 18:06:27 Re: MIT benchmarks pgsql multicore (up to 48)performance