On Fri, Oct 3, 2014 at 3:28 PM, Andrus <kobruleht2@xxxxxx> wrote: > Hi! > > Thank you for explanations. > >> the char type pads out the fields on disk. > > > It looks like you wrote that char takes more disk space. > > from > > http://www.pgcon.org/2013/schedule/attachments/269_tour-of-postgresql-data-types.pdf > > page 28: > > Unlike many > databases, char(n) is NOT stored as afixed-sizedfield in > Postgres. It is treated exactly the sameas > varchar(n)except for being padded > > So char type does not take more space than varchar. I beg to differ: postgres=# create table t1(v char(100)); CREATE TABLE postgres=# create table t2(v varchar(100)); CREATE TABLE postgres=# insert into t1 select '' from generate_series(1,1000000); INSERT 0 1000000 Time: 5951.023 ms postgres=# insert into t2 select '' from generate_series(1,1000000); INSERT 0 1000000 Time: 2083.323 ms postgres=# select pg_size_pretty(pg_relation_size(oid)) from pg_class where relname = 't1'; pg_size_pretty ──────────────── 128 MB (1 row) postgres=# select pg_size_pretty(pg_relation_size(oid)) from pg_class where relname = 't2'; pg_size_pretty ──────────────── 35 MB (1 row) merlin -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general