From: Mitch Skinner <lists@arctur.us>
To: James Klo <jklo@arkitec.com>
Cc: pgsql-performance@postgresql.org
Subject: Re: make bulk deletes faster?
Date: Mon, 19 Dec 2005 02:39:31 -0800
Message-ID: <1134988771.3208.81.camel@firebolt> (raw)
In-Reply-To: <jklo-C7336F.21104017122005@news.hub.org>
References: <jklo-C7336F.21104017122005@news.hub.org>
On Sat, 2005-12-17 at 21:10 -0800, James Klo wrote:
> I need to routinely move data from the timeblock table to an archive
> table with the same schema named timeblock_archive. I really need this
> to happen as quickly as possible, as the archive operation appears to
> really tax the db server...
Have you considered partitioning?
http://www.postgresql.org/docs/8.1/interactive/ddl-partitioning.html
If you can partition your timeblock table so that you archive an entire
partition at a time, then you can delete the archived rows by just
dropping (or truncating) that partition. AFAIK there's no way to
"re-parent" a partition (e.g., from the timeblock table to the
timeblock_archive table).
If your app is particularly cooperative you might be able to use
partitioning to avoid moving data around entirely. If table accesses
are always qualified by something you can use as a partitioning key,
then partitioning can give you the speed benefits of a small table
without the effort of keeping it cleared out.
Another good read, if you haven't yet, is
http://powerpostgresql.com/Downloads/annotated_conf_80.html
especially the "Memory", "Checkpoints", and maybe "WAL options"
sections. If you're doing large deletes then you may need to increase
your free space map settings--if a VACUUM VERBOSE finishes by saying
that you need more FSM pages, then the table may have gotten bloated
over time (which can be fixed with a configuration change and a VACUUM
FULL, though this will lock everything else out of the table while it's
running).
Mitch
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: lists@arctur.us, jklo@arkitec.com
Subject: Re: make bulk deletes faster?
In-Reply-To: <1134988771.3208.81.camel@firebolt>
* 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