aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Naylor <john.naylor@postgresql.org>2024-08-20 10:02:34 +0700
committerJohn Naylor <john.naylor@postgresql.org>2024-08-20 13:36:33 +0700
commit409be33c3136dce56f7605dd4f9b4e8fe7f5d693 (patch)
tree8df2ea9e47e285a70d250b3010f04c9121628777
parenta6ff329e7b7231aba9789922daa25e2367709d50 (diff)
downloadpostgresql-409be33c3136dce56f7605dd4f9b4e8fe7f5d693.tar.gz
postgresql-409be33c3136dce56f7605dd4f9b4e8fe7f5d693.zip
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
-rw-r--r--doc/src/sgml/limits.sgml11
1 files changed, 11 insertions, 0 deletions
diff --git a/doc/src/sgml/limits.sgml b/doc/src/sgml/limits.sgml
index c549447013f..f26f4466719 100644
--- a/doc/src/sgml/limits.sgml
+++ b/doc/src/sgml/limits.sgml
@@ -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>