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<http://www.ultra-forensictechnology.com>