pg.ddx.io pgsql-performance@postgresql.org mailing list archive
help / color / mirror / Atom feed From: Tom Lane <tgl@sss.pgh.pa.us>
To: Matthew Schumacher <matt.s@aptalaska.net>
Cc: pgsql-performance@postgresql.org
Subject: Re: Performance problems testing with Spamassassin 3.1.0
Date: Thu, 04 Aug 2005 10:37:02 -0400
Message-ID: <15610.1123166222@sss.pgh.pa.us> (raw )
In-Reply-To: <42F1CE43.8040801@aptalaska.net >
References: <42E9749F.6000709@aptalaska.net >
<1122616211.5691.340.camel@lamb.mcmillan.net.nz >
<42EA6966.8090402@aptalaska.net >
<1122668371.5691.352.camel@lamb.mcmillan.net.nz >
<19405.1122670917@sss.pgh.pa.us >
<42EAA410.9010700@aptalaska.net >
<27897.1122748133@sss.pgh.pa.us >
<42EE8043.1050207@aptalaska.net >
<op.suulgxokth1vuj@localhost >
<42EE93F8.5010003@aptalaska.net >
<20050801214931.GF60019@decibel.org >
<42EE9D83.8000405@pobox.com >
<42F1CE43.8040801@aptalaska.net >
Matthew Schumacher <matt.s@aptalaska.net> writes:
> for i in array_lower(intokenary, 1) .. array_upper(intokenary, 1)
> LOOP
> _token := intokenary[i];
> INSERT INTO bayes_token_tmp VALUES (_token);
> END LOOP;
> UPDATE
> bayes_token
> SET
> spam_count = greatest_int(spam_count + inspam_count, 0),
> ham_count = greatest_int(ham_count + inham_count , 0),
> atime = greatest_int(atime, 1000)
> WHERE
> id = inuserid
> AND
> (token) IN (SELECT intoken FROM bayes_token_tmp);
I don't really see why you think that this path is going to lead to
better performance than where you were before. Manipulation of the
temp table is never going to be free, and IN (sub-select) is always
inherently not fast, and NOT IN (sub-select) is always inherently
awful. Throwing a pile of simple queries at the problem is not
necessarily the wrong way ... especially when you are doing it in
plpgsql, because you've already eliminated the overhead of network
round trips and repeated planning of the queries.
regards, tom lane
view thread (62+ messages) latest in thread
Message-ID: <15610.1123166222@sss.pgh.pa.us>
Permalink: ../15610.1123166222@sss.pgh.pa.us/
Also on: postgresql.org/message-id/15610.1123166222@sss.pgh.pa.us
copy link · copy postgr.es
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: tgl@sss.pgh.pa.us, matt.s@aptalaska.net
Subject: Re: Performance problems testing with Spamassassin 3.1.0
In-Reply-To: <15610.1123166222@sss.pgh.pa.us>
* 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