Spec-Zone .ru
спецификации, руководства, описания, API
|
В MySQL 5.5 и выше, можно изменить определенные параметры конфигурации системы, не завершая работу и перезапуская сервер, как было необходимо в MySQL 5.1 и ниже. Это увеличивает время работы, и облегчает тестировать и моделировать новый SQL и код программы. Следующие разделы объясняют эти параметры.
Начиная с версии 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_file_per_table
установка.
В 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, "Управляя Оценкой Статистики Оптимизатора".
Отрезок времени транзакция ожидает ресурса перед отказом и откатом оператора, определяется значением
параметра конфигурации 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.4.2.14, "Управляя Адаптивной Индексацией Хеша", это может быть требуемым, в зависимости от Вашей рабочей нагрузки, чтобы динамически включить или отключить адаптивный хеш, индексирующий использование схемы InnoDB, чтобы улучшить производительность запроса.
Параметр конфигурации innodb_adaptive_hash_index
позволяет Вы отключить адаптивный хеш
индексируете. Это включается по умолчанию. Можно изменить этот параметр через SET
GLOBAL
оператор, не перезапуская сервер. Изменение настроек требует SUPER
полномочие.
Отключение адаптивного хеша индексирует порожнюю тару хэш-таблица сразу. Нормальное функционирование может продолжаться, в то время как хэш-таблица освобождается, и выполняющиеся запросы, которые использовали хэш-таблицу, получают доступ к индексировать B-деревьям непосредственно вместо этого. То, когда адаптивный хеш индексирует, повторно включается, хэш-таблица заполняется снова во время нормального функционирования.