Ниже приведен пример выходных данных; формат и числа могут иметь некоторые отличия:
Ниже описаны все параметры. Значения размеров буферов, длины и размеры стеков приведены в байтах. Значения можно указать с суффиксом 'K'
или 'M'
, чтобы обозначить килобайты или мегабайты. Например, 16M
означает 16
мегабайт. Регистр буквы суффикса не имеет значения, 16M
и 16m
обозначают одно и то же:
ansi_mode
. Имеет значение ON
, если mysqld
был запущен с параметром --ansi
. See Раздел 1.9.2, «Запуск MySQL в режиме ANSI».
back_log
Количество поддерживаемых MySQL запросов на соединение, находящихся в очереди. Этот параметр начинает играть роль, когда главный поток MySQL получает очень много запросов на соединение за короткий промежуток времени. У главного потока уходит некоторое время (хотя очень небольшое) на проверку соединения и запуск нового потока. Значение back_log
показывает, сколько запросов может находиться в очереди на этом коротком промежутке времени, прежде чем MySQL прекратит отвечать на новые запросы. Данное значение необходимо увеличить только в том случае, если ожидается большое количество соединений на протяжении короткого промежутка времени. Иначе говоря, это значение является размером очереди ожидания входящих соединений TCP/IP. У вашей операционной системы есть свое собственное ограничение на размер этой очереди. За более подробной информацией обращайтесь на страницу руководства ОС Unix по системному вызову listen(2)
. Чтобы узнать максимальное значение для этой переменной, обратитесь к документации по своей операционной системе. Попытка установить значение back_log
выше, чем допускается в вашей операционной системе, не принесет положительного результата.
basedir
Значение параметра --basedir
.
bdb_cache_size
Буфер, выделенный для индекса кэша и строк таблиц BDB
. Если таблицы BDB
не используются, необходимо запустить mysqld
с параметром --skip-bdb
, чтобы не расходовать память на этот кэш.
bdb_log_buffer_size
Буфер, выделенный для индекса кэша и строк таблиц BDB
. Если таблицы BDB
не используются, его значение необходимо установить в 0 или запустить mysqld
с параметром --skip-bdb
, чтобы не расходовать память на этот кэш.
bdb_home
Значение параметра --bdb-home
.
bdb_max_lock
Максимальное количество блокировок (по умолчанию 10000), которые можно установить на таблицу BDB
. Этот параметр необходимо увеличить, если возникают ошибки типа bdb: Lock table is out of available locks
или Got error 12 from ...
при выполнении длинных транзакций или когда mysqld
должен просмотреть много строк для вычисления запроса.
bdb_logdir
Значение параметра --bdb-logdir
.
bdb_shared_data
Содержит значение ON
, если используется параметр --bdb-shared-data
.
bdb_tmpdir
Значение параметра --bdb-tmpdir
.
binlog_cache_size
. Размер кэша для хранения операторов бинарного журнала SQL во время транзакции. Если часто используются большие транзакции со значительным количеством операторов, то в целях повышения производительности значение этого параметра можно увеличить. See Раздел 6.7.1, «Синтаксис команд BEGIN/COMMIT/ROLLBACK
».
bulk_insert_buffer_size
(был myisam_bulk_insert_tree_size
) MyISAM использует специальный древо-подобный кэш чтобы ускорить многострочные вставки (которые INSERT ... SELECT
, INSERT ... VALUES (...), (...), ...
, и LOAD DATA INFILE
). Эта переменная ограничивает размер такого кэша в каждом потоке (указывается в байтах). Установка в 0 запретит такую оптимизацию.
Внимание:
этот кэш работает только тогда, когда делается вставка в непустую таблицу. Значение по умолчанию: 8 Мб.
character_set
Принятый по умолчанию набор символов.
character_sets
Поддерживаемые наборы символов.
concurrent_inserts
Если установлено значение ON
(принятое по умолчанию), MySQL обеспечивает возможность использовать команду INSERT
на таблицах MyISAM
одновременно с выполнением над этими же таблицами запросов SELECT
. Этот параметр можно отключить, запустив mysqld
с параметром --safe
или --skip-new
.
connect_timeout
Количество времени в секундах, на протяжении которого сервер mysqld
ожидает поступления пакета соединения, после чего генерирует Bad handshake
.
datadir
Значение параметра --datadir
.
delay_key_write
Опция для таблиц MyISAM. Может принимать одно из следующих значений:
OFF | Все CREATE TABLE ... DELAYED_KEY_WRITES игнорируются. |
ON | (по умолчанию) MySQL будет учитывать опцию DELAY_KEY_WRITE в CREATE TABLE . |
ALL | Все вновь открытые таблицы обслуживаются так, будто бы они были созданы с опцией DELAY_KEY_WRITE . |
Если DELAY_KEY_WRITE
включен, это означает что ключевой буфер для таблиц с этой опцией не будет сбрасываться на диск при каждом обновлении индексов, но только тогда, когда таблица закрывается. Это весьма ускорит записи ключей, но вы должны обязательно реализовать автоматическую проверку всех таких таблиц с помощью myisamchk --fast --force
если вы хотите использовать эту опцию.
delay_key_write
Если включен (по умолчанию - включен), MySQL будет учитывать параметр DELAY_KEY_WRITE
для команды CREATE
TABLE. Это означает, что ключевой буфер таблиц с данным параметром будет сбрасываться на диск не при каждом обновлении индексов, а только при закрытии таблицы. Такой режим работы значительно ускоряет запись ключей, однако в случае использования данного параметра необходимо будет также добавить автоматическую проверку всех таблиц при помощи myisamchk --fast --force
. Обратите внимание: если запустить mysqld
с параметром --delay-key-write-for-all-tables
, то все таблицы будут обрабатываться таким образом, как будто они были созданы с применением параметра delay_key_write
. Этот флаг можно снять, запустив mysqld
с параметром --skip-new
или --safe-mode
.
delayed_insert_limit
После вставки строк delayed_insert_limit
обработчик INSERT DELAYED
проверит, остались ли незавершенные операторы SELECT
. Если да, то перед тем, как приступить к выполнению следующих действий, они будут выполнены.
delayed_insert_timeout
Временной промежуток, в течение которого процесс INSERT DELAYED
должен ожидать операторов INSERT
до прекращения выполнения задачи.
delayed_queue_size
Размер очереди (в строках), который должен быть назначен для обработки команды INSERT DELAYED
. При переполнении очереди все клиенты, выполняющие команду INSERT DELAYED
, будут ожидать, пока в очереди снова появится свободное место.
flush
Значение этой переменной будет ON
, если вы запустили MySQL с параметром --flush
.
flush_time
Если значение этой переменной отличается от нуля, то каждые flush_time
секунд все таблицы будут закрываться (чтобы освободить ресурсы и записать информацию на диск). Мы рекомендуем использовать этот параметр только для Windows 9x/Me или на системах с ограниченным количеством ресурсов.
ft_boolean_syntax
Список операторов, поддерживаемых MATCH ... AGAINST(... IN BOOLEAN MODE)
. See Раздел 6.8, «Полнотекстовый поиск в MySQL».
ft_min_word_len
Минимальная длина слова, включаемого в индекс FULLTEXT
. Примечание: индексы FULLTEXT
после изменения этой переменной должны быть скомпонованы заново (это новый параметр в MySQL 4.0).
ft_max_word_len
Максимальная длина слова, включаемого в индекс FULLTEXT
. Примечание: индексы FULLTEXT
после изменения этой переменной должны быть скомпонованы заново (это новый параметр в MySQL 4.0).
ft_max_word_len_for_sort
Максимальная длина слова в индексе FULLTEXT
; эта длина будет использоваться для метода быстрого восстановления индекса в командах REPAIR
, CREATE INDEX
или ALTER
TABLE. Более длинные слова вставляются дольше. При увеличении значения ft_max_word_len_for_sort
MySQL будет создавать временные файлы большего размера (таким образом будет замедляться работа из-за возрастания нагрузки на порт ввода/вывода диска), а также будет помещать меньше ключей в один блок сортировки (что, опять же, способствует снижению производительности). Если значение переменной ft_max_word_len_for_sort
слишком мало, MySQL будет вставлять большое количество слов достаточно медленно, но короткие слова будут вставляться очень быстро.
ft_stopword_file
Из этого файла читается список стоп-слов для полнотекстового поиска. Все слова из этого файла будут использованы, комментарии в этом файле недопустимы. По умолчанию используется встроенный список стоп-слов (определен в файле myisam/ft_static.c
). Установка этого параметра в пустое значение (""
) выключает фильтрацию по стоп-словам.
Внимание: FULLTEXT
индексы должны быть перестроены после того, как эта переменная изменена. (Эта опция нова в MySQL 4.0.10)
have_innodb
Значение YES
, если mysqld
поддерживает таблицы InnoDB
. Значение DISABLED
, если используется параметр --skip-innodb
.
have_bdb
Значение YES
, если mysqld
поддерживает таблицы Berkeley DB
. Значение DISABLED
, если используется параметр --skip-bdb
.
have_raid
Значение YES
, если mysqld
поддерживает параметр RAID
.
have_openssl
Значение YES
, если mysqld
поддерживает SSL (шифрование) в протоколе клиент/сервер.
init_file
Имя файла, указанного при помощи параметра --init-file
при запуске сервера. Это файл операторов SQL, которые сервер должен выполнить при запуске.
interactive_timeout
Количество времени в секундах, на протяжении которого сервер ожидает активности со стороны интерактивного соединения, прежде чем закрыть его. Интерактивный клиент - это клиент, который использует параметр CLIENT_INTERACTIVE
для mysql_real_connect
(). См. также информацию по wait_timeout
.
join_buffer_size
Размер буфера, используемого для полных объединений (объединения, в которых не применяются индексы). Буфер выделяется один раз для каждого полного объединения двух таблиц. Если нужно ускорить полное объединение и невозможно добавить индексы, следует увеличить это значение (обычно добавление индексов является лучшим способом добиться быстрых объединений).
key_buffer_size
Блоки индексов буферизированы и доступ к ним разрешен всем потокам. key_buffer_size
- размер буфера, используемого для блоков индексов. Чтобы улучшить обработку индексов (для всех операций чтения и записи нескольких элементов), необходимо увеличить это значение настолько, насколько возможно. Размер 64 Мб для компьютера с 256 Мб (именно такой компьютер в основном используется для работы с MySQL) - довольно распространенная конфигурация. Тем не менее, если задать слишком большое значение (например, больше 50% от общего количества памяти), система может начать сохранять временные файлы на диске, что значительно снизит производительность. Помните, что, поскольку MySQL не производит кэширования считываемых данных, нужно оставлять определенное пространство для кэша файловой системы операционной системы. Производительность буфера ключей можно проверить, выполнив команду SHOW STATUS
и проверив значения переменных Key_read_requests
, Key_reads
, Key_write_requests
и Key_writes
.
Отношение значений Key_reads
/Key_read_request
обычно должно быть < 0,01. Отношение Key_write
/Key_write_requests
примерно равно 1, если в основном используются обновления/удаления, но может быть и меньше, если чаще используются обновления сразу многих элементов или если DELAY_KEY_WRITE
. See Раздел 4.5.6, «Синтаксис команды SHOW
». Чтобы еще больше увеличить скорость при одновременной записи большого количества строк, используйте команду LOCK TABLES
. See Раздел 6.7.2, «Синтаксис команд LOCK TABLES/UNLOCK TABLES
».
language
Язык, используемый для вывода сообщений об ошибках.
large_file_support
Если mysqld
был откомпилирован с параметрами для поддержки больших файлов.
locked_in_memory
Если mysqld
был заблокирован в памяти при помощи --memlock
log
Если включено занесение в журнал всех запросов.
log_update
Если включен журнал обновлений.
log_bin
Если включен бинарный журнал.
log_slave_updates
Если обновления от подчиненного компьютера должны заноситься в журнал.
long_query_time
Если обработка запроса отнимает больше указанного промежутка времени (в секундах), значение счетчика Slow_queries
будет увеличено. Если используется параметр --log-slow-queries
, запрос будет записан в журнал медленных запросов. Это значение указывается в единицах реального времени, а не времени занятости процессора (CPU time). Таким образом, некий запрос, который выполняется быстрее указываемого времени на слегка загруженном сервере может выполняться больше указанного времени на более загруженном компьютере. See Раздел 4.9.5, «Журнал медленных запросов».
lower_case_table_names
Если установлено значение 1, имена таблиц будут сохранятся на диск с использованием строчных букв, а имена таблиц не будут чувствительны к регистру. С версии MySQL 4.0.2 это также касается и имен баз данных. See Раздел 6.1.3, «Чувствительность имен к регистру».
max_allowed_packet
Максимальный размер одного пакета. Изначально размер буфера сообщений устанавливается в net_buffer_length
байтов, но при необходимости может возрасти до max_allowed_packet
байтов. Это значение по умолчанию не настолько велико, чтобы отсеивать большие (возможно ошибочные) пакеты. Если используются большие столбцы BLOB
, его необходимо увеличить. Значение должно быть не меньше самого большого BLOB
, который будет использоваться. Ограничение протокола для max_allowed_packet
составляет 16 Мб в MySQL 3.23 и 1Гб в MySQL 4.0.
max_binlog_cache_size
Если для транзакции с большим количеством операторов потребуется большее количество памяти, чем указано этим параметром, будет выдано сообщение об ошибке "Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage" (для транзакции с большим количеством операторов требуется больше, чем 'max_binlog_cache_size' байтов для хранения).
max_binlog_size
Доступно после версии 3.23.33. Если запись в бинарный журнал (репликация) превысит данное значение, производится ротация журнала. Нельзя установить значение, меньшее, чем 1024 байта или большее, чем 1 Гб. По умолчанию установлено значение 1 Гб.
max_connections
Разрешенное количество одновременно подсоединенных клиентов. Увеличение этого значения увеличивает количество дескрипторов файлов, необходимых для mysqld
. Ниже приведены примечания по ограничениям для дескрипторов. See Раздел A.2.5, «Ошибка Too many connections
».
max_connect_errors
Если количество прерванных соединений с удаленным компьютером превышает это число, дальнейшие попытки удаленного компьютера установить соединение будут заблокированы. Блокировку с удаленного компьютера можно снять при помощи команды FLUSH HOSTS
.
max_delayed_threads
Не запускайте больше потоков, чем указано здесь, для обработки операторов INSERT DELAYED
. Если попытаться вставить данные в новую таблицу, когда все потоки INSERT DELAYED
заняты, строка будет вставлена таким образом, как будто атрибут DELAYED
не был указан.
max_heap_table_size
Не позволяет создавать динамические таблицы, размер которых превышает указанное значение.
max_join_size
Объединения, которые потенциально могут считывать более max_join_size
записей, будут возвращать ошибку. Это значение нужно задавать, если ваши пользователи осуществляют объединения, которым недостает оператора WHERE
, - такие объединения занимают много времени, а затем возвращают миллионы строк.
max_sort_length
Параметр определяет, сколько байтов следует использовать при сортировке значений BLOB
или TEXT
(обрабатываются только первые max_sort_length
байтов каждого значения, остальные игнорируются).
max_user_connections
Максимальное количество активных соединений для одного пользователя (0 = без ограничений).
max_tmp_tables
(Этот параметр пока ни на что не влияет.) Максимальное количество временных таблиц, которые клиент может открывать одновременно.
max_write_lock_count
После данного количества блокирования записей разрешается выполнить между ними несколько блокировок чтения.
myisam_recover_options
Значение параметра --myisam-recover
.
myisam_sort_buffer_size
Буфер, который выделяется для сортировки индексов при выполнении команды REPAIR
или для создания индексов при помощи команд CREATE INDEX
или ALTER TABLE
.
myisam_max_extra_sort_file_size
. Если размер временного файла, используемого для быстрого создания индексов, превышает на указанный здесь объем используемый кэш ключей, то лучше отдать предпочтение методу кэша ключей. Такой метод применяется для того, чтобы для больших ключей символов в больших таблицах использовался более медленный метод кэширования ключей при создании таблиц. Обратите внимание: значение этого параметра в байтах, начиная с 4.0.3 (до 4.0.3 параметр указывался в мегабайтах).
myisam_max_sort_file_size
Максимальный размер временного файла, который в MySQL может использоваться при восстановлении индекса (во время работы команд REPAIR
, ALTER TABLE
или LOAD DATA INFILE
). Для файлов, размер которых превышает указанное значение, индекс будет создаваться при помощи кэша ключей (такой алгоритм работает несколько медленнее). Обратите внимание: значение этого параметра в байтах, начиная с 4.0.3 (до 4.0.3 параметр указывался в мегабайтах).
net_buffer_length
В данное значение устанавливается в промежутках между запросами буфер соединения. Обычно это значение не изменяется, но если у вас очень мало памяти, можно установить его по размеру ожидаемого запроса (т.е. равным предполагаемой длине операторов SQL, отправляемых клиентами; если оператор превысит указанную длину, буфер будет автоматически увеличен как максимум до max_allowed_packet
байтов).
net_read_timeout
Количество времени в секундах, на протяжении которого ожидаются дополнительные данные от соединения, пока не будет отменено чтение. Обратите внимание, что мы не ожидаем поступления данных от соединения, время ожидания определяется по write_timeout
. Также см. slave_net_timeout
.
net_retry_count
Если чтение из порта связи было прервано, будет предпринято указанное количество попыток повторного чтения. Это значение должно быть достаточно высоким на FreeBSD
, так как внутренние прерывания направляются на все потоки.
net_write_timeout
Время ожидания записи блока через соединение, пока запись не будет прервана (в секундах).
open_files_limit
Если это значение отлично от 0, то mysqld
будет применять его для резервных дескрипторов файлов, используемых с setrlimit()
. Если это значение равно 0, то mysqld
будет резервировать max_connections*5
или max_connections + table_cache*2
(в зависимости от того, какое число больше) файлов. Если mysqld
выдает ошибку 'Too many open files' (слишком много открытых файлов), данное значение необходимо увеличить.
pid_file
Значение параметра --pid-file
.
port
Значение параметра --port
.
protocol_version
Версия протокола, используемого сервером MySQL.
read_buffer_size
(было record_buffer
) Каждый поток, осуществляющий последовательное сканирование, выделяет буфер указанного размера для каждой сканируемой таблицы. Если проводится много последовательных сканирований, это значение можно увеличить.
record_rnd_buffer_size
При считывании строк после проведения сортировки в отсортированном порядке строки считываются через буфер, чтобы избежать операций поиска по диску. Это может улучшить выполнение ORDER BY
весьма и весьма, если параметр установлен в большое значение. Т.к. эта переменная имеет отношение к потоку, то не устанавливайте слишком большое значение глобально, но просто меняйте его при выполнении некоторых больших запросов.
query_cache_limit
Результаты, превышающие это значение, не кэшируются (по умолчанию - 1Мб).
query_cache_size
Память, выделенная для хранения результатов старых запросов. Если значение установлено в 0, кэш запросов отключен (принято по умолчанию).
query_cache_type
Могут быть заданы следующие значения (только числовые):
Значение | Объяснение | Примечание |
0 | OFF | Не кэширует и не извлекает результаты. |
1 | ON | Кэширует все результаты, кроме запросов SELECT SQL_NO_CACHE ... . |
2 | DEMAND | Кэширует только запросы SELECT SQL_CACHE ... . |
safe_show_database
Не отображаются базы данных, для которых у пользователя нет каких-либо привилегий по базам данных или таблицам. Таким образом можно увеличить степень безопасности, если вы не хотите предоставлять посторонним лицам возможность получать информацию о том, какие базы данных есть у других пользователей. Также см. skip_show_database
.
server_id
Значение параметра --server-id
.
skip_locking
Установлено в значение OFF
, если mysqld
использует внешнюю блокировку.
skip_networking
Установлено в значение ON
, если разрешаются только локальные соединения (через сокет).
skip_show_database
Эта переменная не позволяет выполнять команду SHOW DATABASES
, если у пользователя нет привилегии PROCESS
. Таким образом можно увеличить степень безопасности, если вы не хотите предоставлять посторонним лицам возможность получать информацию о том, какие базы данных есть у других пользователей. Также см. safe_show_database
.
slave_net_timeout
Количество времени в секундах, в течение которого ожидаются дополнительные данные от подсоединенного головного или подчиненного компьютера прежде, чем будет отменено чтение.
slow_launch_time
Если создание потока занимает больше, чем указанное значение (в секундах), значение счетчика Slow_launch_threads
будет увеличено.
socket
Сокет Unix, используемый сервером.
sort_buffer_size
Каждый поток, которому необходимо произвести сортировку, выделяет буфер данного размера. Увеличение данного значения позволит ускорить выполнение операторов ORDER BY
или GROUP BY
. See Раздел A.4.4, «Где MySQL хранит временные файлы».
table_cache
Количество открытых таблиц для всех потоков. С увеличением этого значения увеличивается количество дескрипторов файлов, необходимых для mysqld
. Чтобы узнать, необходимо ли изменять значение кэша таблиц, следует проверить значение переменной Opened_tables
. См. раздел See Раздел A.4.4, «Где MySQL хранит временные файлы». Если у этой переменной большое значение, а команда FLUSH TABLES
(которая закрывает все таблицы, а потом открывает их повторно) используется не часто, то необходимо увеличить ее значение. Чтобы получить дополнительную информацию по кэшу таблиц, см. раздел See Раздел 5.4.7, «Открытие и закрытие таблиц в MySQL».
table_type
Принятый по умолчанию тип таблиц.
thread_cache_size
Определяет, сколько потоков должно сохраняться в кэше для повторного использования. После отключения клиента потоки клиента помещаются в кэш, если там не больше потоков, чем thread_cache_size
. Все новые потоки сначала берутся из кэша, и только когда кэш становится пустым, создаются новые потоки. Значение этой переменной можно увеличить, чтобы повысить производительность, если создается много новых соединений (если потоки у вас хорошо организованы, обычно заметного улучшения производительности не наблюдается). Насколько эффективен текущий кэш потоков, можно определить по разнице между Connections
и Threads_created
.
thread_concurrency
В системе Solaris mysqld
вызывает функцию thr_setconcurrency()
с этим значением. thr_setconcurrency()
позволяет приложению дать системе потоков подсказку по необходимому количеству потоков, которые должны быть запущены в одно и то же время.
thread_stack
Размер стека для каждого потока. От данного значения зависит большое количество ограничений, обнаруживаемых при помощи теста crash
-me. По умолчанию этот размер достаточен для нормальной работы. See Раздел 5.1.4, «Набор тестов MySQL (The MySQL Benchmark Suite)».
timezone
Часовой пояс, в котором находится сервер.
tmp_table_size
Если находящаяся в памяти временная таблица превысит этот размер, MySQL автоматически преобразует ее в дисковую таблицу MyISAM
. Значение tmp_table_size
следует увеличить, если выполняется много расширенных запросов GROUP BY
и в вашей системе установлено значительное количество оперативной памяти.
tmpdir
Каталог, используемый для временных файлов и временных таблиц. Начиная с MySQL 4.1, в tmpdir
могут быть указаны несколько путей, разделенных двоеточием :
(точкой с запятой на Windows ;
). Эти пути будут использованы в ротации.
version
Номер версии сервера.
wait_timeout
Время в секундах, на протяжении которого сервер наблюдает неактивность в неинтерактивном соединения прежде, чем закрыть его. Когда запускается поток, SESSION.WAIT_TIMEOUT
инициализируется исходя из GLOBAL.WAIT_TIMEOUT
или GLOBAL.INTERACTIVE_TIMEOUT
, в зависимости от типа клиента (как определяется в CLIENT_INTERACTIVE
опции соединения).
См. также interactive_timeout
.
Раздел руководства, в котором описывается настройка MySQL содержит некоторую информацию по настройке приведенных выше переменных. See Раздел 5.5.2, «Настройка параметров сервера».