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_maxinnodb_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.