Справочное руководство по 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.

Содержание раздела