TOAST (The Oversized-Attribute Storage Technique) — механизм в PostgreSQL, который позволяет эффективно обрабатывать большие значения данных. 14 Он предназначен для работы с данными, которые слишком велики, чтобы помещаться на одну страницу базы данных (по умолчанию — 8 КБ). 14
Работа TOAST включает несколько шагов: 1
- Проверка размера. 1 При вставке или обновлении большого значения данных в таблицу PostgreSQL автоматически проверяет, превышает ли оно определённый порог размера. 1
- Разделение на части. 1 Большое значение делится на более мелкие части, обычно по 2 КБ. 1 Затем эти части индивидуально сжимаются. 1
- Хранение. 1 Сжатые части хранятся в отдельной таблице, называемой таблицей TOAST. 1 В основной таблице содержатся ссылки на эти части. 1
- Устранение дубликатов. 1 TOAST также включает механизм для устранения дубликатов частей данных, что обеспечивает максимально эффективное хранение. 1
- Прозрачный доступ. 1 При запросе данных из таблицы PostgreSQL извлекает сжатые части, декомпрессирует их и восстанавливает исходное большое значение данных. 1
TOAST работает прозрачно для пользователей и разработчиков приложений. 1 PostgreSQL автоматически управляет хранением TOAST, оптимизируя запросы и сокращая использование дискового пространства. 4