In PostgreSQL, data values are stored in tuples and individual tuples cannot span data pages. Since the size of a data page is 8192 bytes, the upper limit on the size of a data value is relatively low. To support the storage of larger atomic values, PostgreSQL provides a large object (LOB) facility.
Originally, PostgreSQL supported three implementations of large objects: as files external to PostgreSQL, as external files managed by PostgreSQL, and as data stored within the database. This caused considerable confusion among users. As a result, PostgreSQL now supports only the latter option (large objects as data stored within the database). Although this implementation is slightly slower to access, it provides stricter data integrity. |
For historical reasons, this storage scheme is sometimes referred to as Inversion large objects. |