Re: TOAST & performance with lots of big columns in a table
От | Jan Wieck |
---|---|
Тема | Re: TOAST & performance with lots of big columns in a table |
Дата | |
Msg-id | 200012141334.IAA04181@jupiter.jw.home обсуждение исходный текст |
Ответ на | Re: TOAST & performance with lots of big columns in a table (Frank Joerdens <frank@joerdens.de>) |
Список | 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 по дате отправления: