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.