On Tue, Feb 5, 2013 at 9:51 AM, Albe Laurenz <laurenz.a...@wien.gv.at>wrote:

> Geoff Winkless wrote:
> > I'm trying to migrate a database from MySQL to postgres and I'm
> struggling with the amount of
> > diskspace the resulting db takes.
> >
> > I may be missing a setting somewhere but I can't see one anywhere
> obvious (apologies if I'm being
> > stupid...)
> >
> > Even postgres' idea of the size of the columns don't match up to its own
> reported size of the data.
> >
> > eg I have a table "result":
> >
> > CREATE TABLE result (
> >     st_id integer NOT NULL,
> >     log smallint NOT NULL,
> >     "time" integer NOT NULL,
> >     token character(4) NOT NULL,
> >     data character varying(500) DEFAULT NULL::character varying
> > );
> >
> >
> > # SELECT pg_size_pretty(sum(pg_column_size(data) + pg_column_size(st_id)
> + pg_column_size(log) +
> > pg_column_size(token) + pg_column_size(time))) FROM result;
> >  pg_size_pretty
> > ----------------
> >  178 MB
> > (1 row)
> >
> > # SELECT pg_size_pretty(pg_relation_size('result'));
> >  pg_size_pretty
> > ----------------
> >  613 MB
> > (1 row)
> >
> >
> > I'd naively expected these two figures to be similar.
> >
> > I've run vacuum analyze and it made no difference (not a major surprise
> because all I've done so far
> > is create the database and sequentially insert the data into the tables).
> >
> > I expected a little overhead from what I'd read before the migration but
> that's a fairly huge
> > difference.
> >
> > As I said, sorry if I've missed the obvious "use loads of extra space"
> setting but I'd appreciate any
> > suggestion as to what that setting might be called :)
>
> I don't think that pg_column_size() is a good tool to
> measure table size.
>
> I'd suggest that you use pg_table_size for the table itself
> and pg_indexes_size for the size of ist indexes.
> That should come close to the amount of disk space taken.
>


Agreed, don't forget, you have indexes, free space, vacuum-able stuff,
etc... all laying in your datafiles.  Your measurements are telling you
what you have purely in a raw form.

--Scott Mead
sco...@openscg.com
http://www.openscg.com


>
> Yours,
> Laurenz Albe
>
>
> --
> Sent via pgsql-admin mailing list (pgsql-admin@postgresql.org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-admin
>

Reply via email to