Document limit on the number of out-of-line values per table

Document the hard limit stemming from the size of an OID, and also
mention the perfomance impact that occurs before the hard limit
is reached.

Jakub Wartak and Robert Haas
Backpatch to all supported versions

Discussion: https://postgr.es/m/CAKZiRmwWhp2yxjqJLwbBjHdfbJBcUmmKMNAZyBjjtpgM9AMatQ%40mail.gmail.com
This commit is contained in:
John Naylor 2024-08-20 10:02:34 +07:00
parent be73e70085
commit e51160fa0b
1 changed files with 11 additions and 0 deletions

View File

@ -135,4 +135,15 @@
created tuples are internally marked as null in the tuple's null bitmap, the
null bitmap also occupies space.
</para>
<para>
Each table can store a theoretical maximum of 2^32 out-of-line values; see
<xref linkend="storage-toast" /> for a detailed discussion of out-of-line
storage. This limit arises from the use of a 32-bit OID to identify each
such value. The practical limit is significantly less than the theoretical
limit, because as the OID space fills up, finding an OID that is still free
can become expensive, in turn slowing down INSERT/UPDATE statements.
Typically, this is only an issue for tables containing many terabytes
of data; partitioning is a possible workaround.
</para>
</appendix>