RE: pg_dump out of memory for large table with LOB - Mailing list pgsql-general

From Jean-Marc Lessard
Subject RE: pg_dump out of memory for large table with LOB
Date
Msg-id 8FC5F25FF3EC4744ADFCF20CBA3F44BE016811CA13@SRV-CAMTL-EXCH2.Forensictech.com
Whole thread Raw
In response to RE: pg_dump out of memory for large table with LOB  (Jean-Marc Lessard <Jean-Marc.Lessard@ultra-ft.com>)
List pgsql-general

JMLessard wrote:

> What about updates where the bytea do not changed. Does a new copy of the bytea will be made in the toast table or new row will point to the original bytea?

> > https://www.postgresql.org/docs/current/storage-toast.html says:

> > The TOAST management code is triggered only when a row value to be stored in a table is wider than TOAST_TUPLE_THRESHOLD bytes (normally 2 kB). The TOAST code will compress

> > and/or move field values out-of-line until the row value is shorter than TOAST_TUPLE_TARGET bytes (also normally 2 kB, adjustable) or no more gains can be had. During an UPDATE

> > operation, values of unchanged fields are normally preserved as-is; so an UPDATE of a row with out-of-line values incurs no TOAST costs if none of the out-of-line values change.

> Does it means, no incurs cost to generate the out of line toast, but that a copy of the bytea is still made for the new line?

 

I bench mark it as follow:

UPDATE table SET mod_tim=mod_tim;

The relpages of the table doubled, but the relpages of the toast table did not changed.

Jean-Marc Lessard
Administrateur de base de données / Database Administrator
Ultra Electronics Forensic Technology Inc.
T +1 514 489 4247 x4164
www.ultra-forensictechnology.com

pgsql-general by date:

Previous
From: Andreas Joseph Krogh
Date:
Subject: Sv: Re: Syndicating PostgreSQL mailing list to Discourse
Next
From: Alessandro Aste
Date:
Subject: Parallel query and number of connections.