Lists: | pgsql-ru-general |
---|
From: | Warstone(at)list(dot)ru <warstone(at)list(dot)ru> |
---|---|
To: | pgsql-ru-general <pgsql-ru-general(at)postgresql(dot)org> |
Subject: | TOAST и борьба с разбуханием этой таблицы. |
Date: | 2015-01-22 13:25:53 |
Message-ID: | 1421933153.624145118@f303.i.mail.ru |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-ru-general |
Как известно у Пг есть некоторая проблема с TOAST'ами. Обычно она лечится более агрессивным вакуумом или чем-то подобным.
Если копнуть глубже, то тоаст таблицы - это обычные таблицы Пг, где просто хранятся данные. Начать копать можно отсюда: http://www.postgresql.org/docs/9.3/static/storage-toast.html
Смысл в том, что у этой таблицы так-же есть ctid.
Так-же есть очень полезная тула pgcompactor, которая часть тулкита https://github.com/grayhemp/pgtoolkit
Смысл той тулы - посмотреть сколько есть свободного места, если есть, то обновлять последние записи на диске до тех пор, пока они не уйдут на страницу выше, освобождая текущую страницу и позволяя, таким образом, сделать VACUUM FULL без полного лока таблицы. Один минус - она не умеет тоасты. Проблема заключается в том, что нельзя апдейтить напрямую в тоасты.
Собственно 2 вопроса:
1) Как понять какой chunk_id какой записи принадлежит?
2) Как все-таки апдейтнуть тоаст таблицу не входя в спец режим?
Просто очень хочется получить эту возможность для тоастов.
--
Nick unnoun
From: | Alexey Vasiliev <leopard_ne(at)inbox(dot)ru> |
---|---|
To: | Warstone(at)list(dot)ru <warstone(at)list(dot)ru> |
Cc: | pgsql-ru-general <pgsql-ru-general(at)postgresql(dot)org> |
Subject: | Re: [pgsql-ru-general] TOAST и борьба с разбуханием этой таблицы. |
Date: | 2015-01-22 13:45:05 |
Message-ID: | 1421934305.663235219@f75.i.mail.ru |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-ru-general |
Можно воспользоваться https://github.com/reorg/pg_repack
Он то точно это пофиксит, но он создает новую таблицу, в которую переливает данные. Тоесть потребуется 2X места таблицы, которую будете фиксить.
Тут чуть больше информации: http://postgresql.leopard.in.ua/html/#pg_repack
Thu, 22 Jan 2015 16:25:53 +0300 от Warstone(at)list(dot)ru <warstone(at)list(dot)ru>:
> Как известно у Пг есть некоторая проблема с TOAST'ами. Обычно она лечится более агрессивным вакуумом или чем-то подобным.
>
> Если копнуть глубже, то тоаст таблицы - это обычные таблицы Пг, где просто хранятся данные. Начать копать можно отсюда: http://www.postgresql.org/docs/9.3/static/storage-toast.html
> Смысл в том, что у этой таблицы так-же есть ctid.
>
> Так-же есть очень полезная тула pgcompactor, которая часть тулкита https://github.com/grayhemp/pgtoolkit
>
> Смысл той тулы - посмотреть сколько есть свободного места, если есть, то обновлять последние записи на диске до тех пор, пока они не уйдут на страницу выше, освобождая текущую страницу и позволяя, таким образом, сделать VACUUM FULL без полного лока таблицы. Один минус - она не умеет тоасты. Проблема заключается в том, что нельзя апдейтить напрямую в тоасты.
>
> Собственно 2 вопроса:
> 1) Как понять какой chunk_id какой записи принадлежит?
> 2) Как все-таки апдейтнуть тоаст таблицу не входя в спец режим?
>
> Просто очень хочется получить эту возможность для тоастов.
>
> --
> Nick unnoun
--
Alexey Vasiliev
From: | Warstone(at)list(dot)ru <warstone(at)list(dot)ru> |
---|---|
To: | pgsql-ru-general <pgsql-ru-general(at)postgresql(dot)org> |
Subject: | Re[2]: [pgsql-ru-general] TOAST и борьба с разбуханием этой таблицы. |
Date: | 2015-01-22 14:18:29 |
Message-ID: | 1421936309.646109905@f395.i.mail.ru |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | Postg토토 핫SQL : Postg토토 |
Про это знаю. Не устраивает 2ной размер. SSD не напасешься на такие решения.
Thu, 22 Jan 2015 16:45:05 +0300 от Alexey Vasiliev <leopard_ne(at)inbox(dot)ru>:
>Можно воспользоваться https://github.com/reorg/pg_repack
>
>Он то точно это пофиксит, но он создает новую таблицу, в которую переливает данные. Тоесть потребуется 2X места таблицы, которую будете фиксить.
>
>Тут чуть больше информации: http://postgresql.leopard.in.ua/html/#pg_repack
>
>
>Thu, 22 Jan 2015 16:25:53 +0300 от Warstone(at)list(dot)ru < warstone(at)list(dot)ru >:
>> Как известно у Пг есть некоторая проблема с TOAST'ами. Обычно она лечится более агрессивным вакуумом или чем-то подобным.
>>
>> Если копнуть глубже, то тоаст таблицы - это обычные таблицы Пг, где просто хранятся данные. Начать копать можно отсюда: http://www.postgresql.org/docs/9.3/static/storage-toast.html
>> Смысл в том, что у этой таблицы так-же есть ctid.
>>
>> Так-же есть очень полезная тула pgcompactor, которая часть тулкита https://github.com/grayhemp/pgtoolkit
>>
>> Смысл той тулы - посмотреть сколько есть свободного места, если есть, то обновлять последние записи на диске до тех пор, пока они не уйдут на страницу выше, освобождая текущую страницу и позволяя, таким образом, сделать VACUUM FULL без полного лока таблицы. Один минус - она не умеет тоасты. Проблема заключается в том, что нельзя апдейтить напрямую в тоасты.
>>
>> Собственно 2 вопроса:
>> 1) Как понять какой chunk_id какой записи принадлежит?
>> 2) Как все-таки апдейтнуть тоаст таблицу не входя в спец режим?
>>
>> Просто очень хочется получить эту возможность для тоастов.
>>
>> --
>> Nick unnoun
>
>--
>Alexey Vasiliev