Начиная с MySQL 4.0.3 мы предоставляем лучший доступ к большинству системных переменных и переменных, относящихся к соединению. Можно менять теперь большую часть переменных без необходимости останавливать сервер.
Есть два типа системных переменных: специфичные для потока (или для соединения; мы их в дальнейшем называем потоковыми переменными для краткости), которые уникальны для данного соединения и глобальные перемененные, которые предназначаются для управления глобальными событиями. Глобальные переменные также используются для того, чтобы установить значения по умолчанию для соответствующих потоковых переменных для новых соединений.
Когда mysqld
запускается, все глобальные переменные инициализируются из командной строки
и файлов опций. Вы можете изменять значения с помощью SET GLOBAL
. Когда новый поток создается,
потоковые переменные инициализируются из глобальных и они не меняются даже если вы даете новую
команду SET GLOBAL
.
Для установки глобальной переменной, используйте один из таких синтаксисов:
(Здесь используется sort_buffer_size
в качестве примера)
SET GLOBAL sort_buffer_size=value; SET @@global.sort_buffer_size=value;
Чтобы установить значение для потоковой переменной, используйте такие синтаксисы:
SET SESSION sort_buffer_size=value; SET @@session.sort_buffer_size=value; SET sort_buffer_size=value;
Если вы не указываете режим, то тогда подразумевается SESSION
.
See Раздел 5.5.6, «Синтаксис команды SET
».
LOCAL
- синоним для SESSION
.
Для получения значения глобальной переменной используйте одну из этих команд:
SELECT @@global.sort_buffer_size; SHOW GLOBAL VARIABLES like 'sort_buffer_size';
Для получения значения потоковой переменной используйте одну из этих команд:
SELECT @@session.sort_buffer_size; SHOW SESSION VARIABLES like 'sort_buffer_size';
Когда вы запрашиваете значение переменной с помощью синтаксиса
@@variable_name
и не укзываете GLOBAL
или SESSION
, то
тогда MySQL вернет потоковое значение этой переменное, если таковое существует.
Если нет, то MySQL вернет глобальное значение.
Причина, по которой требуется указывать GLOBAL
для установки только глобальных
переменных но не для получения их значения, заключается в том, чтобы
удостовериться, что если мы в будущем не будем иметь проблем, если добавим
потоковую переменную с таким же именем или уберем некую потоковую переменную.
В этом случае вы можете ненароком изменить состояние сервера в целом, а не
исключительно вашего соединения.
Далее идет полный список всех переменных которые вы можете изменять и значения
которых можете получать, а также информация о том, можете ли вы использовать
SESSION
или GLOBAL
с ними.
Переменная | Тип значения | Тип |
autocommit | булевое | SESSION |
big_tables | булевое | SESSION |
binlog_cache_size | число | GLOBAL |
bulk_insert_buffer_size | число | GLOBAL | SESSION |
concurrent_insert | булевое | GLOBAL |
connect_timeout | число | GLOBAL |
convert_character_set | строка | SESSION |
delay_key_write | OFF | ON | ALL | GLOBAL |
delayed_insert_limit | число | GLOBAL |
delayed_insert_timeout | число | GLOBAL |
delayed_queue_size | число | GLOBAL |
error_count | число | LOCAL |
flush | булевое | GLOBAL |
flush_time | число | GLOBAL |
foreign_key_checks | булевое | SESSION |
identity | число | SESSION |
insert_id | булевое | SESSION |
interactive_timeout | число | GLOBAL | SESSION |
join_buffer_size | число | GLOBAL | SESSION |
key_buffer_size | число | GLOBAL |
last_insert_id | булевое | SESSION |
local_infile | булевое | GLOBAL |
log_warnings | булевое | GLOBAL |
long_query_time | число | GLOBAL | SESSION |
low_priority_updates | булевое | GLOBAL | SESSION |
max_allowed_packet | число | GLOBAL | SESSION |
max_binlog_cache_size | число | GLOBAL |
max_binlog_size | число | GLOBAL |
max_connect_errors | число | GLOBAL |
max_connections | число | GLOBAL |
max_error_count | число | GLOBAL | SESSION |
max_delayed_threads | число | GLOBAL |
max_heap_table_size | число | GLOBAL | SESSION |
max_join_size | число | GLOBAL | SESSION |
max_sort_length | число | GLOBAL | SESSION |
max_tmp_tables | число | GLOBAL |
max_user_connections | число | GLOBAL |
max_write_lock_count | число | GLOBAL |
myisam_max_extra_sort_file_size | число | GLOBAL | SESSION |
myisam_max_sort_file_size | число | GLOBAL | SESSION |
myisam_sort_buffer_size | число | GLOBAL | SESSION |
net_buffer_length | число | GLOBAL | SESSION |
net_read_timeout | число | GLOBAL | SESSION |
net_retry_count | число | GLOBAL | SESSION |
net_write_timeout | число | GLOBAL | SESSION |
query_cache_limit | число | GLOBAL |
query_cache_size | число | GLOBAL |
query_cache_type | enum | GLOBAL |
read_buffer_size | число | GLOBAL | SESSION |
read_rnd_buffer_size | число | GLOBAL | SESSION |
rpl_recovery_rank | число | GLOBAL |
safe_show_database | булевое | GLOBAL |
server_id | число | GLOBAL |
slave_compressed_protocol | булевое | GLOBAL |
slave_net_timeout | число | GLOBAL |
slow_launch_time | число | GLOBAL |
sort_buffer_size | число | GLOBAL | SESSION |
sql_auto_is_null | булевое | SESSION |
sql_big_selects | булевое | SESSION |
sql_big_tables | булевое | SESSION |
sql_buffer_result | булевое | SESSION |
sql_log_binlog | булевое | SESSION |
sql_log_off | булевое | SESSION |
sql_log_update | булевое | SESSION |
sql_low_priority_updates | булевое | GLOBAL | SESSION |
sql_max_join_size | число | GLOBAL | SESSION |
sql_quote_show_create | булевое | SESSION |
sql_safe_updates | булевое | SESSION |
sql_select_limit | булевое | SESSION |
sql_slave_skip_counter | число | GLOBAL |
sql_warnings | булевое | SESSION |
table_cache | число | GLOBAL |
table_type | enum | GLOBAL | SESSION |
thread_cache_size | число | GLOBAL |
timestamp | булевое | SESSION |
tmp_table_size | enum | GLOBAL | SESSION |
tx_isolation | enum | GLOBAL | SESSION |
version | строка | GLOBAL |
wait_timeout | число | GLOBAL | SESSION |
warning_count | число | LOCAL |
unique_checks | булевое | SESSION |
Переменные, помеченные как число
могут иметь числовое значение.
Переменные, помеченные как булевое
могут быть установлены в 0
,
1
, ON
или OFF
. Переменные типа enum
должны в общем
случае быть установлены в одно из возможных значений для переменной, но также
могут быть установлены в значение числа, соответствующего значению выбора enum.
Первый элемент списка enum - номер 0.
Вот описание некоторых переменных:
Переменная | Описание |
identity | Синоним для last_insert_id (совместимость с Sybase) |
sql_low_priority_updates | Синоним для low_priority_updates |
sql_max_join_size | Синоним для max_join_size |
delay_key_write_for_all_tables | Если это и delay_key_write установлены, то тогда все вновь открываемые таблицы MyISAM открываются с задержкой записи ключей. |
version | Синоним для VERSION() (совместимость (?) с Sybase) |
Описания других переменных можно найти в описании переменных запуска
mysql
, в описании команды SHOW VARIABLES
и в разделе SET
.
See Раздел 4.1.1, «Параметры командной строки mysqld
». See Раздел 4.5.6.4, «SHOW VARIABLES
». See Раздел 5.5.6, «Синтаксис команды SET
».