From: Scott Marlowe <scott.marlowe@gmail.com>
To: Steve Midgley <public@misuse.org>
Cc: pgsql-sql-owner@postgresql.org
Cc: pgsql-sql@postgresql.org
Subject: Re: Re: How to keep at-most N rows per group? periodic DELETEs or constraints or..?
Date: Wed, 9 Jan 2008 13:09:20 -0600
Message-ID: <dcc563d10801091109kf80ce2dh97b8e4a548f5168f@mail.gmail.com> (raw)
In-Reply-To: <20080109182115.6E39C2E3239@postgresql.org>
References: <20080109152431.79AFF2E02F6@postgresql.org>
<20080109182115.6E39C2E3239@postgresql.org>
On Jan 9, 2008 12:20 PM, Steve Midgley <public@misuse.org> wrote:
> This is kludgy but you would have some kind of random number test at
> the start of the trigger - if it evals true once per every ten calls to
> the trigger (say), you'd cut your delete statements execs by about 10x
> and still periodically truncate every set of user rows fairly often. On
> average you'd have ~55 rows per user, never less than 50 and a few
> outliers with 60 or 70 rows before they get trimmed back down to 50..
> Seems more reliable than a cron job, and solves your problem of an ever
> growing table? You could adjust the random number test easily if you
> change your mind of the balance of size of table vs. # of delete
> statements down the road.
And, if you always through a limit 50 on the end of queries that
retrieve data, you could let it grow quite a bit more than 60 or 70...
Say 200. Then you could have it so that the random chopper function
only gets kicked off every 100th or so time.
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-sql@postgresql.org
Cc: scott.marlowe@gmail.com, public@misuse.org, pgsql-sql-owner@postgresql.org
Subject: Re: Re: How to keep at-most N rows per group? periodic DELETEs or constraints or..?
In-Reply-To: <dcc563d10801091109kf80ce2dh97b8e4a548f5168f@mail.gmail.com>
* 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