From 293913568e6a7a86fd1479e1cff8e2ecb58d6568 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sat, 13 Apr 2024 15:44:03 +0200 Subject: Adding upstream version 16.2. Signed-off-by: Daniel Baumann --- doc/src/sgml/html/limits.html | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 doc/src/sgml/html/limits.html (limited to 'doc/src/sgml/html/limits.html') diff --git a/doc/src/sgml/html/limits.html b/doc/src/sgml/html/limits.html new file mode 100644 index 0000000..14a6269 --- /dev/null +++ b/doc/src/sgml/html/limits.html @@ -0,0 +1,27 @@ + +Appendix K. PostgreSQL Limits

Appendix K. PostgreSQL Limits

+ Table K.1 describes various hard limits of + PostgreSQL. However, practical limits, such as + performance limitations or available disk space may apply before absolute + hard limits are reached. +

Table K.1. PostgreSQL Limitations

ItemUpper LimitComment
database sizeunlimited 
number of databases4,294,950,911 
relations per database1,431,650,303 
relation size32 TBwith the default BLCKSZ of 8192 bytes
rows per tablelimited by the number of tuples that can fit onto 4,294,967,295 pages 
columns per table1,600further limited by tuple size fitting on a single page; see note + below
columns in a result set1,664 
field size1 GB 
indexes per tableunlimitedconstrained by maximum relations per database
columns per index32can be increased by recompiling PostgreSQL
partition keys32can be increased by recompiling PostgreSQL
identifier length63 bytescan be increased by recompiling PostgreSQL
function arguments100can be increased by recompiling PostgreSQL
query parameters65,535 

+ The maximum number of columns for a table is further reduced as the tuple + being stored must fit in a single 8192-byte heap page. For example, + excluding the tuple header, a tuple made up of 1,600 int columns + would consume 6400 bytes and could be stored in a heap page, but a tuple of + 1,600 bigint columns would consume 12800 bytes and would + therefore not fit inside a heap page. + Variable-length fields of + types such as text, varchar, and char + can have their values stored out of line in the table's TOAST table when the + values are large enough to require it. Only an 18-byte pointer must remain + inside the tuple in the table's heap. For shorter length variable-length + fields, either a 4-byte or 1-byte field header is used and the value is + stored inside the heap tuple. +

+ Columns that have been dropped from the table also contribute to the maximum + column limit. Moreover, although the dropped column values for newly + created tuples are internally marked as null in the tuple's null bitmap, the + null bitmap also occupies space. +

\ No newline at end of file -- cgit v1.2.3