Spec-Zone .ru
спецификации, руководства, описания, API

14.2.5.5. Динамическое Управление Параметров Конфигурации системы

В MySQL 5.5 и выше, можно изменить определенные параметры конфигурации системы, не завершая работу и перезапуская сервер, как было необходимо в MySQL 5.1 и ниже. Это увеличивает время работы, и облегчает тестировать и моделировать новый SQL и код программы. Следующие разделы объясняют эти параметры.

14.2.5.5.1. Динамически Изменение innodb_file_per_table

Начиная с версии 4.1 MySQL InnoDB обеспечил две альтернативы для того, как таблицы сохранены на диске. Можно составить новую таблицу, и индексирует в совместно используемой системной табличной области, физически сохраненной в ibdata файлах. Или, можно сохранить новую таблицу, и индексирует в отдельной табличной области (.ibd файл). Расположение хранения для каждой таблицы InnoDB определяется параметр конфигурации innodb_file_per_table в то время, когда таблица составляется.

В MySQL 5.5 и выше, параметр конфигурации innodb_file_per_table является динамичным, и может быть установлен ON или OFF использование SET GLOBAL. Ранее, единственный способ установить эти параметры был в конфигурационном файле MySQL (my.cnf или my.ini), и изменение требуемое завершение работы и перезапуск сервера.

Настройка по умолчанию OFF, так новые таблицы и индексирует, создаются в системной табличной области. Динамически изменение значения этого параметра требует SUPER полномочие и сразу влияет на работу всех соединений.

Таблицы, составленные, когда innodb_file_per_table включается может использовать формат файла Барракуды, и TRUNCATE возвращает дисковое пространство для тех таблиц к операционной системе. Формат файла Барракуды поочередно активирует опции, такие как табличное сжатие и DYNAMIC формат строки. Таблицы, составленные, когда innodb_file_per_table прочь, не может использовать эти функции. Чтобы использовать в своих интересах те функции существующей таблицы, можно включить установку файла на таблицу и работать ALTER TABLE t ENGINE=INNODB для той таблицы.

Когда Вы пересматриваете первичный ключ для таблицы InnoDB, таблица воссоздается, используя текущие настройки для innodb_file_per_table и innodb_file_format. Это поведение не применяется, когда добавление или отбрасывание вторичного InnoDB индексируют, как объяснено в Быстром Создании индекса в Механизме Хранения InnoDB. То, когда вторичное устройство индексирует, создается, не восстанавливая таблицу, индексирование сохранено в том же самом файле как табличные данные, независимо от тока innodb_file_per_table установка.

14.2.5.5.2. Динамически Изменение innodb_stats_on_metadata

В MySQL 5.5 и выше, можно изменить настройки innodb_stats_on_metadata динамически во времени выполнения, чтобы управлять, выполняет ли InnoDB статистику, собирающуюся, когда операторы метаданных выполняются. Чтобы изменить настройки, сделайте заявление SET GLOBAL innodb_stats_on_metadata=mode, где mode также ON или OFF (или 1 или 0). Изменение этих настроек требует SUPER полномочие и сразу влияет на работу всех соединений.

Эта установка связывается с функцией, описанной в Разделе 14.2.5.8, "Управляя Оценкой Статистики Оптимизатора".

14.2.5.5.3. Динамически Изменение innodb_lock_wait_timeout

Отрезок времени транзакция ожидает ресурса перед отказом и откатом оператора, определяется значением параметра конфигурации innodb_lock_wait_timeout. (В MySQL 5.0.12 и ранее, вся транзакция откатывалась, не только оператор.) Ваше приложение может попробовать оператор снова (обычно после ожидания некоторое время), или откатывать всю транзакцию и перезапуск.

Ошибка возвратилась, когда период тайм-аута превышается:

ERROR HY000: Lock wait timeout exceeded; try restarting transaction

В MySQL 5.5 и выше, параметр конфигурации innodb_lock_wait_timeout может быть установлен во времени выполнения с SET GLOBAL или SET SESSION оператор. Изменение GLOBAL установка требует SUPER полномочие и влияет на работу всех клиентов, которые впоследствии соединяются. Любой клиент может измениться SESSION установка для innodb_lock_wait_timeout, который влияет только на тот клиент.

В MySQL 5.1 и ранее, единственный способ установить эти параметры был в конфигурационном файле MySQL (my.cnf или my.ini), и изменение требуемое завершение работы и перезапуск сервера.

14.2.5.5.4. Динамически Изменение innodb_adaptive_hash_index

Как описано в Разделе 14.2.4.2.14, "Управляя Адаптивной Индексацией Хеша", это может быть требуемым, в зависимости от Вашей рабочей нагрузки, чтобы динамически включить или отключить адаптивный хеш, индексирующий использование схемы InnoDB, чтобы улучшить производительность запроса.

Параметр конфигурации innodb_adaptive_hash_index позволяет Вы отключить адаптивный хеш индексируете. Это включается по умолчанию. Можно изменить этот параметр через SET GLOBAL оператор, не перезапуская сервер. Изменение настроек требует SUPER полномочие.

Отключение адаптивного хеша индексирует порожнюю тару хэш-таблица сразу. Нормальное функционирование может продолжаться, в то время как хэш-таблица освобождается, и выполняющиеся запросы, которые использовали хэш-таблицу, получают доступ к индексировать B-деревьям непосредственно вместо этого. То, когда адаптивный хеш индексирует, повторно включается, хэш-таблица заполняется снова во время нормального функционирования.