Re: TOAST & performance with lots of big columns in a table - Mailing list pgsql-general

From Jan Wieck
Subject Re: TOAST & performance with lots of big columns in a table
Date
Msg-id 200012141334.IAA04181@jupiter.jw.home
Whole thread Raw
In response to Re: TOAST & performance with lots of big columns in a table  (Frank Joerdens <frank@joerdens.de>)
List 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@Yahoo.com #



pgsql-general by date:

Previous
From: "Nathan Barnett"
Date:
Subject: RE: Reliability Stability of PgSQL & it's JDBC driver
Next
From: Peter Eisentraut
Date:
Subject: Re: Problem with pg_hba.conf