RE: pg_dump out of memory for large table with LOB

From: Jean-Marc Lessard <Jean-Marc(dot)Lessard(at)ultra-ft(dot)com>
To: Daniel Verite <daniel(at)manitou-mail(dot)org>
Cc: Adrien Nayrat <adrien(dot)nayrat(at)anayrat(dot)info>, "pgsql-general(at)lists(dot)postgresql(dot)org" <pgsql-general(at)lists(dot)postgresql(dot)org>
Subject: RE: pg_dump out of memory for large table with LOB
Date: 2018-11-15 15:54:05
Message-ID: 8FC5F25FF3EC4744ADFCF20CBA3F44BE016811C37B@SRV-CAMTL-EXCH2.Forensictech.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Thanks to Daniel Verite, nice answer, really helpful :)
It summarizes what I have read in the doc and blogs.

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?

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>

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Sachin Kotwal 2018-11-15 15:59:40 Re: Impact on PostgreSQL due to Redhat acquisition by IBM
Previous Message Andreas Kretschmer 2018-11-15 15:38:54 Re: db-connections (application architecture)