Re: postgres limitation - Mailing list pgsql-admin

From Bruce Momjian
Subject Re: postgres limitation
Date
Msg-id 200101272019.PAA19618@candle.pha.pa.us
Whole thread Raw
In response to Re: postgres limitation  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: postgres limitation
List pgsql-admin
OK, how is this?


These are the limits:

    Maximum size for a database?             unlimited (60GB databases exist)
    Maximum size for a table?                64 TB on all operating systems
    Maximum size for a row?                  unlimited in 7.1 and later
    Maximum size for a field?                1GB in 7.1 and later
    Maximum number of rows in a table?       unlimited
    Maximum number of columns in a table?    1600
    Maximum number of indexes on a table?    unlimited

    Of course, these are not actually unlimited, but limited to
    available disk space and memory/swap space.  Performance may
    suffer when these values get unusually large.

---------------------------------------------------------------------------



> Bruce, I think section 4.6 of the FAQ is a tad on the short and overly
> optimistic side.  Here's a set of more precise statements ...
>
>
>     4.6) What is the maximum size for a row, table, database?
>
> Maximum size for a database?
>
> Effectively unlimited, although you may see performance problems with
> more than a few thousand tables in a database, depending on how
> gracefully your filesystem copes with directories containing many files.
>
> Maximum size for a table?
>
> 2G blocks, hence 16 to 64 terabytes depending on the BLCKSZ
> configuration constant.  (If someone were to run around and make sure
> all the block-number arithmetic is unsigned, we could claim 4G blocks,
> but I think it's not all unsigned now...)
>
> Maximum size for a row?
>
> See limits on field size and number of columns.
>
> Maximum size for an individual field value?
>
> Field values are limited to 1Gb, and in practice are more tightly
> limited by memory/swap space available to a backend; a field value that
> is a large fraction of the maximum process memory size will probably
> cause out-of-memory failures.
>
> Maximum number of columns in a table?
>
> 1600.  In practice probably quite a bit less, even with TOAST, since the
> master tuple still has to fit in a block.  If all the columns are large
> (toastable) then at most you could fit about 250 columns with BLCKSZ=8K,
> since an out-of-line TOAST value pointer takes 32 bytes.  On the other
> hand, 1600 int4 columns would fit easily.
>
> Maximum number of rows in a table?
>
> No specific limit.  Note however that the COUNT() function currently
> uses an int4 counter, so will give bogus results for more than 2G rows.
>
> Maximum number of indexes on a table?
>
> No limit.
>
>             regards, tom lane
>


--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026

pgsql-admin by date:

Previous
From: Tom Lane
Date:
Subject: Re: postgres limitation
Next
From: "Michael Miyabara-McCaskey"
Date:
Subject: Sizing of LARGE databases.