PostgreSQL хранит данные построчно на 8-килобайтных страницах на диске, стремясь заполнить каждую страницу кортежами. 1 Для оптимального хранения кортежи в идеале должны быть размером менее 2 КБ. 1
Любой кортеж размером более 2 КБ обрабатывается с помощью TOAST (The Oversized-Attribute Storage Technique). 12 Этот механизм сжимает и разбивает данные на более мелкие фрагменты. 1 Поддерживаемые методы сжатия для TOAST-кортежей включают pglz и lz4, тогда как кортежи размером менее 2 КБ остаются несжатыми. 1
TOAST — это общая таблица, которая хранит фрагменты реальных значений в основной таблице и сохраняет их в отдельном механизме. 2 Использование TOAST может существенно снижать производительность запросов. 23
Для ускорения доступа к данным PostgreSQL использует внутренние кэши, включая кэширование планов выполнения запросов и часто используемых блоков данных таблиц и индексов. 1 Однако PostgreSQL не предоставляет выделенный кэш для результатов запросов, что снижает скорость их выполнения. 1