I have a Postgres table. `select *` is very slow whereas `select id` is nice and quick. I think it may be that the size of the row is very large and it's taking a while to transport, or it may be some other factor. I need all of the fields (or nearly all of them), so selecting just a subset isn't a quick fix. Selecting the fields that I want is still slow. Here's my table schema minus the names: integer | not null default nextval('core_page_id_seq'::regclass) character varying(255) | not null character varying(64) | not null text | default '{}'::text character varying(255) | integer | not null default 0 text | default '{}'::text text | timestamp with time zone | integer | timestamp with time zone | integer | The size of the text field may be any size. But still, no more than a few kilobytes in the worst case. 1. Is there anything about this that screams 'crazily inefficient'? 2. Is there a way to measure page size at the Postgres commandline to help me debug this?