Сжатие PostgreSQL: меньше данных ≠ выше производительность
Обычно эффективность сжатия оценивают по размеру базы. Но экономия диска не гарантирует ускорения запросов.
Авторы статьи исследовали компрессию страниц в Tantor Postgres на базах 1С.
Что выяснили:
• ZSTD лучше сжимает, но требует больше CPU.
• LZ4 обеспечивает лучший баланс скорости и сжатия.
• На большой таблице объём сократился с 95 до 12 ГБ. LZ4 ускорил холодное чтение почти втрое.
• На небольших таблицах распаковка может стоить дороже сэкономленного I/O.
• Сжатие страниц переменного размера усложняет запись и может приводить к фрагментации.
Архитектурный вывод
Оптимизировать нужно не коэффициент сжатия, а стоимость работы с данными: CPU, I/O, write/read amplification.
Максимальное сжатие ≠ максимальная производительность.
Отдельно интересно решение CSM в Tantor Postgres: сохранять фиксированную адресацию страниц, уменьшая их физический размер. Это компромисс между экономией диска и стоимостью операций чтения и записи.
Читать исследование →
Post #2411
1.35K
- ✍ 2