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

Советы по настройке параметров RDS для MySQL

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

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

Для получения дополнительной информации о том, как изменить параметры экземпляра RDS для MySQL через консоль, см.Изменение параметров экземпляра RDS для MySQL.

lower_case_table_names

  • Поддерживаемые версии: 5.7 и 5.6
  • Функция: Определяет, чувствительны ли имена таблиц к регистру символов при создании баз данных и таблиц.
  • Требуется перезагрузка: Да
  • Значение по умолчанию: 1
  • Предложения по настройке конфигурации: Изменение этого параметра может привести к исключениям репликации между основным и резервным сервером. Если вам действительно необходимо изменить значение, задайте параметр следующим образом:
    • Значение по умолчанию 1 указывает, что имена таблиц нечувствительны к регистру и по умолчанию имеют нижний регистр.
    • Если вы хотите изменить значение этого параметра с 1 на 0, сначала измените его на read-репликах и перезапустите их, а затем повторите операцию на основном экземпляре базы данных.
    • Если вы хотите изменить значение данного параметра с 0 на 1, измените его на основном экземпляре, перезапустите экземпляр и выполните запрос SELECT @@GLOBAL.GTID_EXECUTEDна нем. После этого выполните запрос SELECT @@GLOBAL.GTID_EXECUTEDна read-репликах. Дождитесь, пока результат запроса станет хотя бы таким же, как на основном экземпляре, после чего измените значение параметра на 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_cache будут потеряны.

innodb_large_prefix

  • Поддерживаемая версия: 5.6
  • Функция: Указывает максимальную длину индекса одного столбца таблицы InnoDB.
  • Требуется перезагрузка: Нет
  • Значение по умолчанию: OFF
  • Предложения по настройке конфигурации: Изменение значения этого параметра во время выполнения операции DDL может вызвать исключения репликации между главным и подчиненным серверами. Если вам действительно необходимо изменить значение, установите параметр следующим образом:
    • Чтобы изменить значение этого параметра с OFF на ON, сначала измените его на read-репликах, а затем на главном экземпляре базы данных.
    • Чтобы изменить его со значения ON на OFF, сначала измените его на главном экземпляре базы данных, а затем на 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
  • Функция: Ограничивает общее количество подготовленных операторов. Большое количество подготовленных операторов потребляет ресурсы памяти сервера. Если этот параметр установлен на маленькое значение, ваш экземпляр базы данных может быть уязвимым к атакам типа отказ в обслуживании (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 и в системе имеется большое число взаимоблокировок, частые записи логов увеличат нагрузку ввода-вывода. Если фиксируется информация о каждой взаимоблокировке, лог ошибки будет расти. Например, если взаимоблокировки часто возникают в сценариях высокой конкурентности, объем хранилища быстро исчерпывается. Вы можете временно установить этот параметр в положение 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