Облачная платформаAdvanced

Рекомендации по настройке параметров RDS for MySQL

Язык статьи: Русский
Показать оригинал
Страница переведена автоматически и может содержать неточности. Рекомендуем сверяться с английской версией.

Параметры являются ключевыми элементами конфигурации в системе баз данных. Неправильные настройки параметров могут отрицательно влиять на производительность базы данных. В этом разделе описаны некоторые важные параметры для вашего ознакомления. Для получения подробной информации посетите 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