Size: a a a

pgsql – PostgreSQL

2021 June 14

R

Rasiya in pgsql – PostgreSQL
Здесь не совсем понял.
Помечает свободным и повторно используется для записи, но при этом на уровне ОС я это свободное пространство не увижу?
источник

МШ

Михаил Шурутов... in pgsql – PostgreSQL
Да. Для постгреса пространство свободно, для ОС/ФС -нет.
источник

R

Rasiya in pgsql – PostgreSQL
Воу. Интересно!
А есть ли способы/инструменты, как можно «перестроить» данные и отдать свободное пространство в ОС? Или хотя бы оценить, сколько потенциально там свободного такого пространства?

Спасибо!
источник

МШ

Михаил Шурутов... in pgsql – PostgreSQL
Не надо бездумно пытаться отдать место в ОС. Просто не надо. Для начала - настроить автовакуум, чтобы таблицы чрезмерно не пухли и изучать внутреннее строение постгреса. И думать, как это всё безобразие заставлять работать и жрать просить по минимуму.
источник

R

Rasiya in pgsql – PostgreSQL
Спасибо!

Остался наверное крайний вопрос, будет ли безопасно работать REINDEX INDEX CONCURRENTLY для Primary Key? Я так понимаю, при удалении, там аналогичная проблема с раздуванием данных при удалении записей может происходить (или я ошибаюсь?)
источник

МШ

Михаил Шурутов... in pgsql – PostgreSQL
А чтобы голова не болела при подобных операциях, то сначала делается новый уникальный индекс по полям, которые в ПК, затем, в рамках одной транзакции, удаляется старый, и ПК вешается на новый.
источник

A

Agent Smith in pgsql – PostgreSQL
Здравствуйте всем, при каких условиях ново добавленная строка переходит в другой Пейдж стид
Типо ctid (0,53) предыдущий, новый ctid (1,1)
источник

A

Agent Smith in pgsql – PostgreSQL
источник

P

Petr in pgsql – PostgreSQL
Размер страницы ограничен  (по умолчанию 8kB). Отсюда понятно условие перехода на новую страницу (не помещается очередной элемент т.е.). Также см. fillfactor у таблицы.

https://www.postgresql.org/docs/13/storage-page-layout.html
источник

A

Agent Smith in pgsql – PostgreSQL
u menya takaya problema, pri dobavlenii stroki v tabl. inogda ona poyavlyetsya po ctid nevkonce, to est inogda ctid(0,54) i tak dalee
источник

P

Petr in pgsql – PostgreSQL
Честно говоря, не понял что вы написали.
источник

A

Agent Smith in pgsql – PostgreSQL
При добавлении записей в таблицу новые записи появляются по середине иногда
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Хмм... о чём это? Освобождённые блоки используются повторно (и "всегда" так было).
А вот merge непустых страниц при удалении не происходит (и так тоже было "всегда").
Что и где изменилось-то?
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Послушайте... а зачем Вам вообще куда-то "копать"?
У Вас какая-то настоящая проблема есть от этого (пока этого не видно)?
источник

РЖ

Роман Жарков... in pgsql – PostgreSQL
В середине чего?
источник

P

Petr in pgsql – PostgreSQL
Коли у вас вставилось с ctid = (0,54) гляньте что у вас есть в (0,53) для начала (там может, впрочем, ничего и не быть):
SELECT * FROM t WHERE ctid = '(0,53)';
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
А они, в общем, не "переходят", а добавляются туда, где есть место.
Кстати, какая Вам разница? ;)
источник

A

Agent Smith in pgsql – PostgreSQL
Мне нужно отсортировать данные по стид так как ид по хэш значение
источник

A

Agent Smith in pgsql – PostgreSQL
А как сделать так чтобы по порядку стид инкрементировалось
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Эээ... я ничего не понял. ;(
Но просто для информации: сортировки по ctid почти всегда бесполезны, т.к. CTID не работают так, как кому-то кажется / хотелось бы.
источник