pg.ddx.io  pgsql-performance@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Heikki Linnakangas <heikki@enterprisedb.com>
To: kadams@mxlogic.com
Cc: pgsql-performance@postgresql.org
Subject: Re: WAL log performance/efficiency question
Date: Thu, 17 May 2007 16:52:11 +0100
Message-ID: <464C7A2B.5030105@enterprisedb.com> (raw)
In-Reply-To: <1179416083.26604.15.camel@MXLRMT-208.corp.mxlogic.com>
References: <1179410671.26604.3.camel@MXLRMT-208.corp.mxlogic.com>
	<464C6544.9070104@enterprisedb.com>
	<1179416083.26604.15.camel@MXLRMT-208.corp.mxlogic.com>

Keaton Adams wrote:
> So for every data page there is a 20 byte header, for every row there is
> a 4 byte identifier (offset into the page), AND there is also a 28 byte
> fixed-size header (27 + optional null bitmap)?? (I did find the section
> in the 8.1 manual that give the physical page layout.)  The other RDBMS
> platforms I have worked with have a header in the 28 byte range and a
> row pointer of 4 bytes, and that's it.  I find it a bit surprising that
> PostgreSQL would need another 28 bytes per row to track its contents.

Yes, it is more than many other DBMSs. It contains mostly MVCC-related 
visibility information that other DBMSs store at page level etc, or 
don't have MVCC at all.

As Tom mentioned, that's going to be a bit better in 8.3. We reduced the 
header size from 27 + null bitmap to 23 + null bitmap, which makes a big 
difference especially on 64-bit architectures, where the header used to 
be padded up to 32 bytes, and now it's only 24 bytes.

For character fields, including CHAR(100) like you have, we also store a 
4 bytes length header per field. That's been reduced to 1 byte for 
string shorter than 127 bytes in 8.3.

-- 
   Heikki Linnakangas
   EnterpriseDB   http://www.enterprisedb.com



view thread (6+ messages)  latest in thread

Message-ID: <464C7A2B.5030105@enterprisedb.com>
Permalink:  ../464C7A2B.5030105@enterprisedb.com/
Also on:    postgresql.org/message-id/464C7A2B.5030105@enterprisedb.com

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-performance@postgresql.org
  Cc: heikki@enterprisedb.com, kadams@mxlogic.com
  Subject: Re: WAL log performance/efficiency question
  In-Reply-To: <464C7A2B.5030105@enterprisedb.com>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox