pg.ddx.io  pgsql-admin@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Chris Hoover <revoohc@gmail.com>
To: pgsql-admin@postgresql.org Admin <pgsql-admin@postgresql.org>
Subject: What is the difference in storage between a blank string and null?
Date: Fri, 11 Apr 2008 16:02:36 -0400
Message-ID: <1d219a6f0804111302r4adaf97dn4ecb0549c5ae85dc@mail.gmail.com> (raw)

I'm doing some testing on how to decrease our database size as I work on a
partitioning scheme.

I have found that if I have the database store all empty strings as nulls, I
get a significant savings over saving them as blank strings (i.e. '').
Below is an example of savings I am seeing for the same table:

In my test case, storing empty strings  give me a table size of 20,635,648
Storing empty strings as nulls gives me a table size of: 5,742,592.

As you can see, storing empty strings as nulls is saving me approximately
72% on this table.  So, I am wanting to understand what Postgres is doing
differently with the nulls.  Would someone kindly enlighten me on this.

(P.S. I am using a nullif(trim(column),'') in my partition and view rules to
store the nulls, and coalesce(column,'') to give my application the data
back without nulls.)

Thanks,

Chris

PG 8.1

-- 
Tired of HIGH Gas prices?  Visit http://colafuelguy.mybpi.com to start
saving at the pump no matter where you live!

view thread (3+ messages)  latest in thread

Message-ID: <1d219a6f0804111302r4adaf97dn4ecb0549c5ae85dc@mail.gmail.com>
Permalink:  ../1d219a6f0804111302r4adaf97dn4ecb0549c5ae85dc@mail.gmail.com/
Also on:    postgresql.org/message-id/1d219a6f0804111302r4adaf97dn4ecb0549c5ae85dc@mail.gmail.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-admin@postgresql.org
  Cc: revoohc@gmail.com
  Subject: Re: What is the difference in storage between a blank string and null?
  In-Reply-To: <1d219a6f0804111302r4adaf97dn4ecb0549c5ae85dc@mail.gmail.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