Re: postgres limitation - Mailing list pgsql-admin

From Bruce Momjian
Subject Re: postgres limitation
Date
Msg-id 200101281741.MAA04544@candle.pha.pa.us
Whole thread Raw
In response to Re: postgres limitation  (The Hermit Hacker <scrappy@hub.org>)
List pgsql-admin
I think I have digested most of this information.   I added it to the
FAQ, generalized it in the text of the FAQ, or added it to the TODO
list.

Thanks, Tom.

New FAQ text:

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

These are the limits:

 Maximum size for a database?             unlimited (60GB databases exist)
 Maximum size for a table?                16 TB
 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?    250-1600 depending on column types
 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.

    The maximum table size of 16TB does not require large file
    support from the operating system.  Large tables are stored
    as multiple 1GB files.

    The maximum table size and maximum number of columns can be
    increased by a factor or four if the default block size is increased
    to 32k.

>
> How about the full answer?  I think Tom did a fantastic job of writing up,
> be a shame to make it go to waste for brevity? :(
>
> On Sat, 27 Jan 2001, Bruce Momjian wrote:
>
> > 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
> >
>
> Marc G. Fournier                   ICQ#7615664               IRC Nick: Scrappy
> Systems Administrator @ hub.org
> primary: scrappy@hub.org           secondary: scrappy@{freebsd|postgresql}.org
>
>


--
  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: Bruce Momjian
Date:
Subject: Re: postgres limitation
Next
From: Dmitry Morozovsky
Date:
Subject: PostgreSQL 7, FreeBSD and locale support