Справочное руководство по MySQL версии 4.1.1-alpha
Системные переменные
Начиная с 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 section 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 section 4.1.1 Параметры командной строки mysqld. See section 4.5.6.4 SHOW VARIABLES. See section 5.5.6 Синтаксис команды SET.