Re: postgres limitation

From: Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: pgsql-admin(at)postgresql(dot)org
Subject: Re: postgres limitation
Date: 2001-01-27 20:19:21
Message-ID: 200101272019.PAA19618@candle.pha.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-admin pgsql-docs

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(at)candle(dot)pha(dot)pa(dot)us | (610) 853-3000
+ If your life is a hard drive, | 830 Blythe Avenue
+ Christ can be your backup. | Drexel Hill, Pennsylvania 19026

In response to

Responses

Browse pgsql-admin by date

  From Date Subject
Next Message Michael Miyabara-McCaskey 2001-01-27 21:34:03 Sizing of LARGE databases.
Previous Message Tom Lane 2001-01-27 19:47:22 Re: postgres limitation

Browse pgsql-docs by date

  From Date Subject
Next Message The Hermit Hacker 2001-01-28 02:02:10 Re: postgres limitation
Previous Message Tom Lane 2001-01-27 19:47:22 Re: postgres limitation