TOAST и борьба с разбуханием этой таблицы.
От | Warstone@list.ru |
---|---|
Тема | TOAST и борьба с разбуханием этой таблицы. |
Дата | |
Msg-id | 1421933153.624145118@f303.i.mail.ru обсуждение исходный текст |
Ответы |
Re: [pgsql-ru-general] TOAST и борьба с разбуханием этой таблицы.
|
Список | 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
Если копнуть глубже, то тоаст таблицы - это обычные таблицы Пг, где просто хранятся данные. Начать копать можно отсюда: 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
В списке pgsql-ru-general по дате отправления: