On Tue, Feb 13, 2024, at 23:56, Corey Huinker wrote:
> This patch came out of a discussion at the last PgCon with the person
> who made the "fringe feature" quote, who seemed quite supportive of
> documenting the technique. The comment may have been in regards to
> actually implementing a LIMIT clause on UPDATE and DELETE, which isn't
> in the SQL standard and would be difficult to implement as the two
> statements have no concept of ordering. Documenting the workaround
> would alleviate some interest in implementing a nonstandard feature.
Thanks for sharing the background story.
> As for whether it's commonplace, when I was a consultant I had a number
> of customers that I had who bemoaned how large updates caused big
> replica lag, basically punishing access to records they did care about
> in order to properly archive or backfill records they don't care about.
> I used the technique a lot, putting the update/delete in a loop, and
> often running multiple copies of the same script at times when I/O
> contention was low, but if load levels rose it was trivial to just kill
> a few of the scripts until things calmed down.
I've also used the technique quite a lot, but only using the PK,
didn't know about the ctid trick, so many thanks for documenting it.
/Joel