Re: How are null's stored?
Ryan <pgsql-performance@seahat.com>
From: "Ryan" <pgsql-performance@seahat.com>
To: <josh@agliodbs.com>
Cc: <pgsql-performance@postgresql.org>
Date: 2003-05-12T18:58:03Z
Lists: pgsql-hackers, pgsql-performance
> Jim, > >> I have a 40M row table I need to import data into, then use to create >> a bunch of more normalized tables. Right now all fields are varchar, >> but I'm going to change this so that fields that are less than a >> certain size are just char. Question is, how much impact is there from >> char being nullable vs. not nullable? src/include/access/htup.h >> indicates that nulls are stored in a bitmap, so I'd suspect that I >> should see a decent space savings from not having to include length >> information all the time... (most of these small fields are always the >> same size no matter what...) > > This is moot. PostgreSQL stores CHAR(x), VARCHAR, and TEXT in the same > internal format, which includes length information in the page header. > So you save no storage space by converting to CHAR(x) ... you might > even make your tables *larger* because of the space padding. So if the internal format is identical, why does the INFERNAL database ignore indexes when you have a text compared to a varchar? Ryan