TGViewer
SQL Portal | Базы Данных SQL Portal | Базы Данных @sqlportal · 14K subscribers
Post #1547 2.34K
Table bloat это одна из самых больших слабых сторон Postgres.

Каждый UPDATE строки создает новую копию строки, а старая остается лежать на месте. DELETE помечает строку как удаленную, а освобождение места откладывается на потом.

В базах с большой нагрузкой по UPDATE и DELETE в таблицах накапливаются тонны мертвых строк (tombstones), разбросанных по файлу таблицы. В итоге размер таблицы на диске выглядит гораздо больше, чем реально нужно.

Это и есть table bloat.

Мертвые строки могут переиспользоваться новыми строками, если те по размеру влезают, но иногда, чтобы реально вернуть все доступное мертвое место, нужен VACUUM FULL или похожая пересборка таблицы через расширения.

И это не случайный косяк дизайна: хранение старых версий строк полезно для MVCC и производительности. Просто за это платишь усложнением управления хранилищем :/

👉 @SQLPortal
  • 👍 5
More from @sqlportal
  1. Oct 16, 2026Практические уроки для Backend, Data Engineering и DevOps Площадка с пошаговыми туториалам…
  2. Oct 15, 2026SQL проще изучать, если разделить его по задачам • Определять структуру таблиц: CREATE, AL…
  3. Oct 15, 2026Git пригодится и тем, кто пишет SQL Храните запросы, миграции и схемы БД в репозитории: та…
  4. Oct 14, 2026Дубликаты в SQL: способ зависит от задачи • DISTINCT убирает повторяющиеся сочетания выбра…
  5. Oct 14, 2026Числовые функции SQL: от округления до итогов 🔢 Они помогают обрабатывать числа и выполня…
  6. Oct 13, 2026Быстрый SQL начинается с продуманных запросов 1. Выбирайте только нужные столбцы. Вместо S…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →