Параметры — это ключевые элементы конфигурации в системе баз данных. Неправильные настройки параметров могут негативно влиять на производительность базы данных. В этом разделе описаны некоторые важные параметры для вашего справочного использования. Для получения подробной информации перейдите по ссылке Официальный сайт MySQL.
lower_case_table_names
- Поддерживаемые версии: 5.7 и 5.6
- Функция: контролирует, чувствительны ли имена таблиц к регистру при создании баз данных и таблиц.
- Требуется перезагрузка: Да
- Значение по умолчанию: 1
- Рекомендации по настройке: изменение его значения может привести к исключениям репликации primary/standby. Если всё же необходимо изменить значение, установите параметр следующим образом:
- Значение по умолчанию 1 указывает, что имена таблиц нечувствительны к регистру и по умолчанию в нижнем регистре.
- Если вы хотите изменить значение этого параметра с 1 на 0, измените его на Read-реплики и сначала перезагрузите их, а затем повторите операции на основной DB‑инстансе.
- Если вы хотите изменить значение этого параметра с 0 на 1, измените его на основном DB‑инстансе, перезагрузите и выполните SELECT @@GLOBAL.GTID_EXECUTED на основном инстансе сначала. Затем выполните SELECT @@GLOBAL.GTID_EXECUTED на Read-реплики. Дождитесь, пока набор результатов будет как минимум таким же, как у основного DB‑инстанса, и затем измените значение этого параметра на Read-реплики и перезагрузите их.
innodb_flush_log_at_trx_commit
- Поддерживаемые версии: 8.0, 5.7, и 5.6
- Функция: Управляет балансом между строгим соблюдением ACID для операций фиксации и более высокой производительностью.
- Требуется перезагрузка: Нет
- Значение по умолчанию: 1
- Рекомендации по конфигурации: Если значение этого параметра не 1, безопасность данных не гарантируется. При сбое системы данные могут быть потеряны.
- Если установлено значение по умолчанию 1, InnoDB записывает журналы транзакций из буфера в файл журнала и сбрасывает данные файла журнала на диск при каждом фиксировании транзакции. Эта настройка помогает поддерживать соответствие базы данных требованиям ACID.
- Если установлено значение 0, InnoDB записывает журналы транзакций из буфера в файл журнала и сбрасывает данные файла журнала на диск один раз в секунду.
- Если установлено 2, InnoDB записывает журнал транзакций из буфера в файл журнала при каждом фиксации транзакции и сбрасывает данные файла журнала на диск один раз в секунду.
sync_binlog
- Поддерживаемые версии: 8.0, 5.7 и 5.6
- Функция: Управляет тем, как часто сервер MySQL сбрасывает бинарные журналы на диск.
- Требуется перезагрузка: Нет
- Значение по умолчанию: 1
- Рекомендации по конфигурации: Значение по умолчанию 1 указывает, что сервер MySQL синхронизирует бинарные журналы с диском до фиксации транзакций. Это самая безопасная настройка.
Если этот параметр установлен 0, сервер MySQL не сбрасывает binlog'и. Вместо этого файловая система сбрасывает данные binlog из кэша на диск. Эта настройка обеспечивает лучшую производительность, но в случае отключения питания или сбоя OS, все данные binlog в binlog_cache будут потеряны.
innodb_large_prefix
- Поддерживаемая версия: 5.6
- Функция: Указывает максимальную длину индекса из одного столбца в таблице InnoDB.
- Требуется перезагрузка: Нет
- Значение по умолчанию: OFF
- Рекомендации по конфигурации: изменение значения этого параметра во время выполнения DDL может вызвать исключения репликации primary/standby. Если необходимо изменить значение, задайте параметр следующим образом:
- Если вы хотите изменить значение этого параметра с OFF на ON, измените его сначала на read replicas, а затем на primary DB instance.
- Если вы хотите изменить его с ВКЛ в ВЫКЛ, измените его на первичном DB инстансе сначала, а затем на Read-реплики.
innodb_spin_wait_delay
- Поддерживаемые версии: 8.0, 5.7, и 5.6
- Функция: Указывает максимальную задержку между опросами для спин-блокировки.
- Требуется перезагрузка: Нет
- Нет значения по умолчанию.
- Рекомендации по конфигурации: Его значение определяется спецификациями инстанса. Установка очень большого значения может повлиять на производительность базы данных.
query_alloc_block_size
- Поддерживаемые версии: 8.0, 5.7, и 5.6
- Функция: Указывает размер блоков, выделяемых во время парсинга и выполнения запросов.
- Требуется перезагрузка: Нет
- Нет значения по умолчанию.
- Рекомендации по настройке: Его значение определяется спецификациями экземпляра. Установка его на очень большое значение может повлиять на производительность базы данных.
character_set_server
- Поддерживаемые версии: 8.0, 5.7, и 5.6
- Функция: Указывает набор символов сервера.
- Требуется перезагрузка: Нет
- Нет значения по умолчанию.
- Рекомендации по настройке: Если вы измените значение этого параметра, система изменит значения collation_server, character_set_database, и collation_database соответственно.
Параметры character_set_server и collation_server взаимосвязаны друг с другом. Значение collation_server начинается со значения character_set_server. Например, если character_set_server установлен в latin1, значение collation_server начинается с latin1.
max_prepared_stmt_count
- Поддерживаемые версии: 8.0, 5.7 и 5.6
- Функция: Ограничивает общее количество подготовленных операторов. Слишком много подготовленных операторов потребляют ресурсы памяти сервера. Если этот параметр установлен в небольшое значение, ваш экземпляр DB может быть уязвим к атакам типа отказ в обслуживании (DoS). При необходимости скорректируйте значение этого параметра.
- Перезагрузка требуется: Нет
- Нет значения по умолчанию.
- Рекомендации по настройке: в MySQL 8.0, если версия ядра ранее 8.0.18, значение этого параметра не может превышать 1048576.
innodb_strict_mode
- Поддерживаемые версии: 8.0, 5.7 и 5.6
- Функция: ограничивает политику проверок InnoDB.
- Требуется перезагрузка: Нет
- Значение по умолчанию: OFF
- Рекомендации по настройке: установите этот параметр в ON когда используется сжатие данных страниц.
binlog_rows_query_log_events
- Поддерживаемые версии: 8.0, 5.7 и 5.6
- Функция: определяет, записывать ли оригинальные SQL‑операторы в binlog.
- Требуется перезагрузка: Нет
- Значение по умолчанию: OFF
- Рекомендации по конфигурации: Если этот параметр установлен в ON, производительность базы данных может ухудшиться при обновлении большого объёма данных. Перед изменением значения параметра учитывайте его совместимость с такими инструментами, как Otter.
innodb_print_all_deadlocks
- Поддерживаемые версии: 8.0, 5.7, и 5.6
- Функция: Когда этот параметр включён, информация обо всех взаимоблокировках в пользовательских транзакциях InnoDB записывается в журнал ошибок mysqld.
- Требуется перезагрузка: Нет
- Значение по умолчанию: OFF
- Рекомендации по конфигурации: Установка этого параметра в значение по умолчанию может избежать нагрузки на производительность, вызванной частой записью журналов. Если он установлен в ON и в системе наблюдается большое количество взаимоблокировок, частая запись логов увеличит нагрузку I/O. Если будет записываться информация обо всех взаимоблокировках, будет всё больше и больше журналов ошибок. Например, если взаимоблокировки часто возникают в сценариях с высокой конкуренцией, объём хранения быстро исчерпывается. Вы можете установить этот параметр в ВКЛ временно когда вы хотите устранять неполадки и анализировать взаимоблокировки.
Параметры, связанные с правилами ядра
Значения следующих параметров будут скорректированы на основе правил ядра:
- key_cache_age_threshold: изменено на кратное 100
- join_buffer_size и key_cache_block_size: изменено на кратные 128
- query_prealloc_size, max_allowed_packet, и thread_stack: изменено на кратные 1024
- read_buffer_size, read_rnd_buffer_size, binlog_cache_size, и binlog_stmt_cache_size: изменено на кратные 4096