Re: left join with smaller table or index on (XXX is not null) to avoid upsert

From: "Scott Marlowe" <scott(dot)marlowe(at)gmail(dot)com>
To: Grzegorz Jaśkiewicz <gryzman(at)gmail(dot)com>
Cc: "Ivan Sergio Borgonovo" <mail(at)webthatworks(dot)it>, pgsql-general(at)postgresql(dot)org
Subject: Re: left join with smaller table or index on (XXX is not null) to avoid upsert
Date: 2009-01-19 07:48:28
Message-ID: dcc563d10901182348ya92938cr6f8c01b7fdf8c4df@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On Mon, Jan 19, 2009 at 12:12 AM, Grzegorz Jaśkiewicz <gryzman(at)gmail(dot)com> wrote:
> On Mon, Jan 19, 2009 at 2:44 AM, Scott Marlowe <scott(dot)marlowe(at)gmail(dot)com> wrote:
>> Watch out for bloat when doing this. A simple where change of
>>
>> update table set b = 45 ;
>>
>> to
>>
>> update table set b = 45 where b <> 45 ;
>>
>> can save the db a lot of work, and if you can apply the same logic to
>> your update to save some dead tuples it's worth looking into.
>
> I wonder why DB can't do it on its own :)

Submit a patch. :)

But seriously, it's doing what you told it to do. There might be
corner cases where you need a trigger to fire for a row on change, and
short-circuiting could cause things to fail in unexpected ways.

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Grzegorz Jaśkiewicz 2009-01-19 07:53:02 Re: left join with smaller table or index on (XXX is not null) to avoid upsert
Previous Message Grzegorz Jaśkiewicz 2009-01-19 07:12:25 Re: left join with smaller table or index on (XXX is not null) to avoid upsert