Системные переменные MySQL сервера.

MySQL сервер поддерживает множество системных переменных, которые определяют, как он сконфигурирован, а, значит, как именно будет работать.

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

Динамические переменные.

Динамические переменные бывают двух типов: глобальные и сеансовые.  В таблице приведены основные отличия глобальных и сеансовых переменных:

GLOBAL(Глобальные) GLOBAL / SESSION(Глобальные и сеансовые) SESSION(Сеансовые)
Действуют на все сессии (сеансы) в БД;Действуют на новые сессии Действуют на текущую сессию
Для установки необходима привилегия SUPER Для установки не требуют привелегий
SET GLOBAL <variable>

SET @@global.<variable>

SET SESION <variable>

SET @@session. <variable>

Многие из динамических переменных могут быть и глобальными, и сеансовыми.
Но существуют переменные, которые принадлежат только к одной или другой категории.
Например:

  • Только глобальные переменные: guery_cache_size, key_buffer_size, большинство переменных определяющих параметры памяти. Они не имеют сеансового значения.
  • Только сеансовые переменные: autocommit.
  • Переменные, которые могут принимать и глобальное и сеансовое значение – sort_buffer_size.

Установка сеансовых переменных не требует специальных привилегий, но они могут быть установлены только для текущей сессии, а
не для других клиентов.

Сеансовые переменные могут устанавливаться с помощью ключевых слов LOCAL или @@local, либо их синонимов SESSION или @@session. Если в команде SET не указывается тип переменной GLOBAL ли SESSION, то устанавливается значение сеансовой переменной.

Leave a Reply

Your email address will not be published. Required fields are marked *