Re: [HACKERS] database size - Mailing list pgsql-hackers

From darrenk@insightdist.com (Darren King)
Subject Re: [HACKERS] database size
Date
Msg-id 9801062326.AA82134@ceodev
Whole thread Raw
Responses Re: [HACKERS] database size  (The Hermit Hacker <scrappy@hub.org>)
Re: [HACKERS] database size  (Bruce Momjian <maillist@candle.pha.pa.us>)
List 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.

> ...
> One massive sort file...
> ...

This one I don't know if is "normal"...


Darren  aka  darrenk@insightdist.com

pgsql-hackers by date:

Previous
From: Bruce Momjian
Date:
Subject: Re: consttraints.source
Next
From: The Hermit Hacker
Date:
Subject: Re: [HACKERS] database size