From: | Bruce Momjian <maillist(at)candle(dot)pha(dot)pa(dot)us> |
---|---|
To: | darrenk(at)insightdist(dot)com (Darren King) |
Cc: | pgsql-hackers(at)postgreSQL(dot)org, sthomas(at)cise(dot)ufl(dot)edu |
Subject: | Re: [HACKERS] database size |
Date: | 1998-01-07 01:18:26 |
Message-ID: | 199801070118.UAA06957@candle.pha.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
>
> > I created a table with two columns of type int, and loaded about 300 K records
> > in it. So, the total size of the table is approx. that of 600 K integers,
> > roughly 2.4 MB.
> > But, the file corresponding to the table in pgsql/data/base directory
> > has a size of 19 MB. I was wondering if I have done something wrong in
> > the installation or usage, or is it the normal behavior ?
>
> 48 bytes + each row header (on my aix box..._your_ mileage may vary)
> 8 bytes + two int fields @ 4 bytes each
> 4 bytes + pointer on page to tuple
> -------- =
> 60 bytes per tuple
>
> 8192 / 60 give 136 tuples per page.
>
> 300000 / 136 ... round up ... need 2206 pages which gives us ...
>
> 2206 * 8192 = 18,071,532
>
> So 19 MB is about right. And this is the best to be done, unless
> you can make do with int2s which would optimally shrink the table
> size to 16,834,560 bytes. Any nulls in there might add a few bytes
> per offending row too, but other than that, this should be considered
> normal postgresql behavior.
Nice math exercise.
Does anyone want to tell me the row overhead on commercial databases?
--
Bruce Momjian
maillist(at)candle(dot)pha(dot)pa(dot)us
From | Date | Subject | |
---|---|---|---|
Next Message | Thomas G. Lockhart | 1998-01-07 01:25:47 | Re: [HACKERS] Postgres acl (fwd) |
Previous Message | Bruce Momjian | 1998-01-07 01:16:34 | Re: [HACKERS] database size |