Параметры являются ключевыми элементами конфигурации в системе баз данных. Неправильные настройки параметров могут отрицательно влиять на производительность базы данных. В этом разделе описаны некоторые важные параметры для вашего ознакомления. Для получения подробной информации посетите MySQL official website.
Подробные сведения о том, как изменить параметры RDS for MySQL в консоли, см. Modifying Parameters of an RDS for MySQL Instance.
lower_case_table_names
- Поддерживаемые версии: 5.7 и 5.6
- Функция: Управляет тем, являются ли имена таблиц чувствительными к регистру при создании баз данных и таблиц.
- Требуется перезагрузка: Да
- Значение по умолчанию: 1
- Рекомендации по конфигурации: Изменение его значения может вызвать исключения репликации primary/standby. Если необходимо изменить значение, задайте параметр следующим образом:
- Значение по умолчанию 1 указывает, что имена таблиц нечувствительны к регистру и по умолчанию записываются в нижнем регистре.
- Если вы хотите изменить значение этого параметра с 1 на 0, сначала измените его на репликах чтения и перезагрузите их, а затем повторите операции на основном экземпляре БД.
- Если вы хотите изменить значение этого параметра с 0 на 1, измените его на основном экземпляре, перезагрузите экземпляр и выполните SELECT @@GLOBAL.GTID_EXECUTED. Затем выполните SELECT @@GLOBAL.GTID_EXECUTED на репликах чтения. Дождитесь, пока набор результатов будет как минимум одинаковым с основным экземпляром, после чего измените значение этого параметра на репликах чтения и перезагрузите их.
innodb_flush_log_at_trx_commit
- Поддерживаемые версии: 8.0, 5.7 и 5.6
- Функция: Управляет балансом между строгим соблюдением ACID для операций commit и более высокой производительностью.
- Reboot required: No
- Default value: 1
- Configuration suggestions: Если значение этого параметра не 1, безопасность данных не гарантируется. При сбое системы данные могут быть потеряны.
- Если он установлен в значение по умолчанию 1, InnoDB записывает журналы транзакций из буфера в файл журнала и сбрасывает данные файла журнала на диск при каждом подтверждении транзакции. Эта настройка помогает поддерживать соответствие базы данных требованиям ACID.
- Если он установлен в 0, InnoDB записывает журналы транзакций из буфера в файл журнала и сбрасывает данные файла журнала на диск раз в секунду.
- Если он установлен в 2, InnoDB записывает журналы транзакций из буфера в файл журнала при каждом подтверждении транзакции и сбрасывает данные файла журнала на диск раз в секунду.
sync_binlog
- Supported versions: 8.0, 5.7, and 5.6
- Function: Он контролирует, как часто сервер MySQL сбрасывает бинарные журналы на диск.
- Reboot required: No
- Default value: 1
- Configuration suggestions: Значение по умолчанию 1 указывает, что сервер MySQL синхронизирует бинарные журналы с диском до подтверждения транзакций. Это самая безопасная настройка.
Если этот параметр установлен в 0, сервер MySQL не сбрасывает бинарные журналы. Вместо этого файловая система сбрасывает данные бинарных журналов из кэша на диск. Эта настройка обеспечивает наилучшую производительность, но в случае отключения питания или сбоя ОС все данные бинарных журналов в binlog_cache будут потеряны.
innodb_large_prefix
- Supported version: 5.6
- Функция: Указывает максимальную длину индекса из одного столбца в таблице InnoDB.
- Требуется перезагрузка: Нет
- Значение по умолчанию: OFF
- Рекомендации по конфигурации: Изменение значения этого параметра во время выполнения DDL может вызвать исключения репликации primary/standby. Если необходимо изменить значение, задайте параметр следующим образом:
- Если вы хотите изменить значение этого параметра с OFF на ON, сначала измените его на read replicas, а затем на primary DB instance.
- Если вы хотите изменить его с ON на OFF, сначала измените его на primary DB instance, а затем на read replicas.
innodb_spin_wait_delay
- Поддерживаемые версии: 8.0, 5.7 и 5.6
- Функция: Указывает максимальную задержку между опросами spin lock.
- Требуется перезагрузка: Нет
- Значение по умолчанию отсутствует.
- Рекомендации по конфигурации: Его значение определяется спецификациями instance. Установка очень большого значения может повлиять на производительность базы данных.
query_alloc_block_size
- Поддерживаемые версии: 8.0, 5.7 и 5.6
- Функция: Указывает размер блоков, выделяемых во время парсинга запросов и их выполнения.
- Требуется перезагрузка: No
- Значение по умолчанию отсутствует.
- Рекомендации по конфигурации: Её значение определяется спецификациями инстанса. Установка очень большого значения может повлиять на производительность базы данных.
character_set_server
- Поддерживаемые версии: 8.0, 5.7 и 5.6
- Функция: Указывает набор символов сервера.
- Требуется перезагрузка: No
- Значение по умолчанию отсутствует.
- Рекомендации по конфигурации: При изменении значения этого параметра система соответственно изменит значения 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
- Функция: Ограничивает общее количество подготовленных операторов. Слишком большое количество подготовленных операторов потребляет ресурсы памяти сервера. Если этот параметр установлен на небольшое значение, ваш инстанс БД может быть уязвим к атакам отказа в обслуживании (DoS). При необходимости скорректируйте значение этого параметра.
- Требуется перезагрузка: No
- Значение по умолчанию отсутствует.
- Рекомендации по конфигурации: в 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‑операторы в binlogs.
- Требуется перезагрузка: Нет
- Значение по умолчанию: OFF
- Рекомендации по конфигурации: если этот параметр установлен в ON, производительность базы данных может ухудшиться при обновлении большого объёма данных. Перед изменением значения параметра учитывайте его совместимость с инструментами, такими как Otter.
innodb_print_all_deadlocks
- Поддерживаемые версии: 8.0, 5.7 и 5.6
- Функция: Когда этот параметр включён, информация обо всех взаимоблокировках в пользовательских транзакциях InnoDB записывается в журнал ошибок mysqld.
- Требуется перезагрузка: No
- Значение по умолчанию: OFF
- Рекомендации по настройке: Установка этого параметра в значение по умолчанию может избежать накладных расходов на производительность, вызываемых частыми записями в журнал. Если он установлен в ON и в системе наблюдается большое количество взаимоблокировок, частые записи в журнал увеличат нагрузку ввода‑вывода. Если записывается информация обо всех взаимоблокировках, количество журналов ошибок будет расти. Например, если взаимоблокировки часто возникают в сценариях с высокой конкуренцией, пространство хранения быстро исчерпывается. Вы можете временно установить этот параметр в ON, когда необходимо выполнить диагностику и анализ взаимоблокировок.
Параметры, связанные с правилами ядра
Значения следующих параметров будут скорректированы в соответствии с правилами ядра:- 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