Spec-Zone.ru › MySQL 9.2

17.9.1.6 Сжатие для рабочих нагрузок OLTP

Традиционно, функция InnoDB рекомендовалась в основном для чтений или преимущественно чтений, таких как в конфигурации. Появление накопителей, которые быстрые, но относительно небольшие и дорогостоящие, делает сжатие привлекательным и для OLTP рабочих нагрузок: веб-сайты с высокой активностью и интерактивностью могут снизить требования к хранилищу и свои операции ввода-вывода в секунду (IOPS) с помощью сжатых таблиц, применяя приложения, которые часто выполняют INSERT, UPDATE и DELETE операции.

Эти параметры конфигурации позволяют настроить работу сжатия для конкретного экземпляра MySQL, с акцентом на производительность и масштабируемость для операций с интенсивными записями:

  • innodb_compression_level позволяет увеличить или уменьшить степень сжатия. Более высокое значение позволяет разместить больше данных на накопителе, за счет увеличения накладных расходов ЦП при сжатии. Более низкое значение позволяет уменьшить накладные расходы ЦП, когда хранилище не критично, или ожидается, что данные не особо сжимаемы.

  • innodb_compression_failure_threshold_pct указывает точку отсечения для при обновлении сжатой таблицы. Когда этот порог пройден, MySQL начинает оставлять дополнительное свободное место в каждой новой сжатой странице, динамически настраивая количество свободного места до процента размера страницы, указанного параметром innodb_compression_pad_pct_max

  • innodb_compression_pad_pct_max позволяет настроить максимальное количество пространства, резервируемого в каждой для записи изменений в сжатые строки, без необходимости сжимать всю страницу заново. Чем выше значение, тем больше изменений можно записать без повторного сжатия страницы. MySQL использует переменное количество свободного места для страниц в каждой сжатой таблице, только когда определенный процент операций сжатия “” выполняется во время выполнения, требуя дорогостоящую операцию для разделения сжатой страницы.

  • innodb_log_compressed_pages позволяет отключить запись изображений в журнал транзакций. Повторное сжатие может произойти при внесении изменений в сжатые данные. Этот параметр включен по умолчанию для предотвращения повреждений, которые могут произойти, если используется другая версия алгоритма сжатия zlib во время восстановления. Если вы уверены, что версия zlib не будет изменена, отключите innodb_log_compressed_pages для уменьшения генерации журнала переигрывания для рабочих нагрузок, изменяющих сжатые данные.

Поскольку работа со сжатыми данными иногда предполагает одновременное хранение как сжатых, так и несжатых версий страницы в памяти, при использовании сжатия с рабочей нагрузкой типа OLTP, будьте готовы увеличить значение параметра конфигурации innodb_buffer_pool_size.

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-8.4-en/innodb-performance-compression-oltp.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API