From: | "A(dot) Kretschmer" <andreas(dot)kretschmer(at)schollglas(dot)com> |
---|---|
To: | pgsql-performance(at)postgresql(dot)org |
Subject: | Re: update query taking too long |
Date: | 2007-06-28 05:37:25 |
Message-ID: | 20070628053724.GB22066@a-kretschmer.de |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-performance |
am Thu, dem 28.06.2007, um 15:03:32 +1000 mailte Chris folgendes:
> Hi all,
>
> I'm trying to do an update of a reasonably large table and it's taking
> way too long so I'm trying to work out why and if I need to tweak any
> settings to speed it up.
>
> The table is around 3.5 million records.
>
> The query is
>
> update table set domainname=substring(emailaddress from position('@' in
> emailaddress));
I think, this is a bad idea.
Because, first, you have 2 columns with nearly identical data
(mailaddres includes the domain and a extra domain field)
And, after the UPDATE you have every row twice, because of MVCC: the
live tuple and a dead tuple.
> Any pointers about settings etc are most welcome.
I think, you should better use a VIEW.
CREATE VIEW my_view_on_table as SELECT mailaddres, substring(...) as
domain, ...
or, use the substring(...) in your regular queries instead the extra
column.
Andreas
--
Andreas Kretschmer
Kontakt: Heynitz: 035242/47150, D1: 0160/7141639 (mehr: -> Header)
GnuPG-ID: 0x3FFF606C, privat 0x7F4584DA http://wwwkeys.de.pgp.net
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2007-06-28 05:41:10 | Re: update query taking too long |
Previous Message | Chris | 2007-06-28 05:03:32 | update query taking too long |