поиск:
Полезные ссылки

  • Форум по MySQL

  • Статьи по MySQL

  • Вопросы по MySQL

  • MySQL.com


  • Базы данных

  • MySQL

  • PostgreSQL


  • PHP конференция 2005
    Подробности!

    6.1.5. Системные переменные

    Начиная с 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».

     
    © 1997-2005 PHP Club Team
    Rambler's Top100