elein <elein@sbcglobal.net> writes:
> I have a very long, very narrow table that is taking up a few gigabytes.
> The table is defined with varchar(n) fields and some character(n) fields.
> I am assuming that the majority of all fields are filled.
> Are these rows being stored on disk as aligned varlenas? Can I squish out some
> space by arranging the columns to groups of 8 bytes? Or is each column
> aligned separately on a new 8 byte boundary? Or is this a futile exercise?
Those fields will be aligned on 4-byte boundaries within a row.
Depending on your machine architecture, the total length of a row might
be constrained to an 8-byte multiple or a 4-byte multiple.
My guess is that you'd be spending your time more productively by
figuring a way to make the table less narrow. PG's 28-or-more-byte
overhead per row is usually bad news for narrow table designs, long
before you worry about alignment.
regards, tom lane