Spec-Zone.ru › MySQL 5.7

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

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

Параметры конфигурации, представленные в MySQL 5.6, позволяют настроить работу сжатия для конкретного экземпляра 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-5.7-en/innodb-performance-compression-oltp.html

Spec-Zone.ru

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