Re: TOAST & performance with lots of big columns in a table

From: Jan Wieck <janwieck(at)yahoo(dot)com>
To: Frank Joerdens <frank(at)joerdens(dot)de>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: TOAST & performance with lots of big columns in a table
Date: 2000-12-14 13:34:13
Message-ID: 200012141334.IAA04181@jupiter.jw.home
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Frank Joerdens wrote:
> Uh, I think I was wired rather the wrong way up, this question is
> confused. What a little fresh air can do. Cycling home from the office
> cleared the confusion in my head: It is of course nonsense to store all
> translations in a single row, also to have different tables for
> different languages. You have one table with a 'language' field that
> stores the information as to whether this is English, French, etc.; and
> then another table for the meta stuff, that also links to the authors
> table etc.. So simple. I am a little embarassed.

That'd be my suggestion too, because it makes it alot easier
to add a 7th and 8th language later.

Anyway, having many big columns in one table will make it
more likely that the toaster is invoked. Actually, it only
does some work until the main tuple fits into BLKSZ/4, which
is a little less than 2K in the default setup. This will
cause more data to get toasted. The application would need to
only select those columns that are actually required to avoid
detoasting of all the stuff it doesn't use, so this approach
is a little more complicated at the client side. If the
application selects all translations every time anyway, there
shouldn't be much of a difference. But if it first selects
the original and just the available translations, it only
needs to fetch the original text plus the language codes of
all others with a second query, avoiding the detoasting and
data transfer for all the available translations, so your new
schema is definitely better.

Jan

--

#======================================================================#
# It's easier to get forgiveness for being wrong than for being right. #
# Let's break this rule - forgive me. #
#================================================== JanWieck(at)Yahoo(dot)com #

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Tom Lane 2000-12-14 14:53:56 Re: space problem
Previous Message Marcos 2000-12-14 13:26:08 password crypted