SHOW [GLOBAL | SESSION] VARIABLES [LIKE wild]
SHOW VARIABLES は、MySQL システム変数の値を表示します。
GLOBAL オプションおよび SESSION オプションは MySQL 4.0.3 で追加されました。
GLOBAL では、MySQL の新規接続に使用される変数を得ることができます。SESSION では、現在の接続に有効な値を得ることができます。オプションを特に指定しなければ、SESSION が使用されます。
デフォルト値が適当ではない場合には、mysqld 起動時にコマンドラインオプションを使用して、これらの変数のほとんどを変更できます。
See 項4.1.1. 「mysqld コマンドラインオプション」。 SET ステートメントからでも、ほとんどの変数を変更できます。
See 項5.5.6. 「SET 構文」。
SHOW VARIABLES の出力は以下のようになります(形式と数値は場合によって異なります)。
mysqladmin variables コマンドを使用しても同じ情報を取得できます。
+---------------------------------+------------------------------+ | Variable_name | Value | +---------------------------------+------------------------------| | back_log | 50 | | basedir | /usr/local/mysql | | bdb_cache_size | 8388572 | | bdb_log_buffer_size | 32768 | | bdb_home | /usr/local/mysql | | bdb_max_lock | 10000 | | bdb_logdir | | | bdb_shared_data | OFF | | bdb_tmpdir | /tmp/ | | bdb_version | Sleepycat Software: ... | | binlog_cache_size | 32768 | | bulk_insert_buffer_size | 8388608 | | character_set | latin1 | | character_sets | latin1 big5 czech euc_kr | | concurrent_insert | ON | | connect_timeout | 5 | | convert_character_set | | | datadir | /usr/local/mysql/data/ | | delay_key_write | ON | | delayed_insert_limit | 100 | | delayed_insert_timeout | 300 | | delayed_queue_size | 1000 | | flush | OFF | | flush_time | 0 | | ft_boolean_syntax | + -><()~*:""&| | | ft_min_word_len | 4 | | ft_max_word_len | 84 | | ft_query_expansion_limit | 20 | | ft_stopword_file | (built-in) | | have_bdb | YES | | have_innodb | YES | | have_isam | YES | | have_raid | NO | | have_symlink | DISABLED | | have_openssl | YES | | have_query_cache | YES | | init_file | | | innodb_additional_mem_pool_size | 1048576 | | innodb_buffer_pool_size | 8388608 | | innodb_data_file_path | ibdata1:10M:autoextend | | innodb_data_home_dir | | | innodb_file_io_threads | 4 | | innodb_force_recovery | 0 | | innodb_thread_concurrency | 8 | | innodb_flush_log_at_trx_commit | 1 | | innodb_fast_shutdown | ON | | innodb_flush_method | | | innodb_lock_wait_timeout | 50 | | innodb_log_arch_dir | | | innodb_log_archive | OFF | | innodb_log_buffer_size | 1048576 | | innodb_log_file_size | 5242880 | | innodb_log_files_in_group | 2 | | innodb_log_group_home_dir | ./ | | innodb_mirrored_log_groups | 1 | | interactive_timeout | 28800 | | join_buffer_size | 131072 | | key_buffer_size | 16773120 | | language | /usr/local/mysql/share/... | | large_files_support | ON | | local_infile | ON | | locked_in_memory | OFF | | log | OFF | | log_update | OFF | | log_bin | OFF | | log_slave_updates | OFF | | log_slow_queries | OFF | | log_warnings | OFF | | long_query_time | 10 | | low_priority_updates | OFF | | lower_case_table_names | OFF | | max_allowed_packet | 1047552 | | max_binlog_cache_size | 4294967295 | | max_binlog_size | 1073741824 | | max_connections | 100 | | max_connect_errors | 10 | | max_delayed_threads | 20 | | max_heap_table_size | 16777216 | | max_join_size | 4294967295 | | max_relay_log_size | 0 | | max_sort_length | 1024 | | max_user_connections | 0 | | max_tmp_tables | 32 | | max_write_lock_count | 4294967295 | | myisam_max_extra_sort_file_size | 268435456 | | myisam_repair_threads | 1 | | myisam_max_sort_file_size | 2147483647 | | myisam_recover_options | force | | myisam_sort_buffer_size | 8388608 | | net_buffer_length | 16384 | | net_read_timeout | 30 | | net_retry_count | 10 | | net_write_timeout | 60 | | open_files_limit | 1024 | | pid_file | /usr/local/mysql/name.pid | | port | 3306 | | protocol_version | 10 | | query_cache_limit | 1048576 | | query_cache_size | 0 | | query_cache_type | ON | | read_buffer_size | 131072 | | read_rnd_buffer_size | 262144 | | rpl_recovery_rank | 0 | | safe_show_database | OFF | | server_id | 0 | | slave_net_timeout | 3600 | | skip_external_locking | ON | | skip_networking | OFF | | skip_show_database | OFF | | slow_launch_time | 2 | | socket | /tmp/mysql.sock | | sort_buffer_size | 2097116 | | sql_mode | | | table_cache | 64 | | table_type | MYISAM | | thread_cache_size | 3 | | thread_stack | 131072 | | tx_isolation | READ-COMMITTED | | timezone | EEST | | tmp_table_size | 33554432 | | tmpdir | /tmp/:/mnt/hd2/tmp/ | | version | 4.0.4-beta | | wait_timeout | 28800 | +---------------------------------+------------------------------+
以下、各オプションについて説明します。
バッファサイズ、長さ、およびスタックサイズの値はバイト単位です。
'K' または 'M' のサフィックスを値に付けると、それぞれキロバイト、メガバイトを示します。たとえば、16M は 16 メガバイトです。サフィックスの大文字と小文字は区別されません。16M と 16m は同じです。
ansi_mode。
mysqld が --ansi オプションで起動している場合は ON。
See 項1.8.2. 「ANSI モードでの MySQL の実行」。
back_log MySQL で保持できる未解決の接続要求数。これは、非常に短い間にメインの MySQL スレッドに非常に多くの接続要求が集中したときに機能する。それから、メインスレッドが接続をチェックし、新規スレッドを開始するのにいくらかの時間(ほんのわずかであるが)がかかる。back_log 値は、MySQL が瞬間的に新規要求への回答を停止するまでのこの短時間に、スタック可能な要求の数を示す。短時間に多くの接続要求が予想される場合だけ、この値を大きくする必要がある。
言い換えると、この値は、TCP/IP 接続のリッスンキューのサイズである。使用しているオペレーティングシステムそのものにも、このキューサイズの制限がある。詳細については、Unix listen(2) システムコールのマニュアルページを参照のこと。この変数の最大値について、OS のドキュメントを参照することが必要である。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 BDB テーブルで有効にできるロックの最大数(デフォルトでは 10,000)。長いトランザクションを実行しているときや、mysqld が大量のレコードを使ってクエリを実行しているときに、bdb: Lock table is out of available locks または Got error 12 from ... というエラーが発生する場合には、この数値を大きくする必要がある。
bdb_logdir --bdb-logdir オプションの値。
bdb_shared_data --bdb-shared-data を使用している場合は ON。
bdb_tmpdir --bdb-tmpdir オプションの値。
binlog_cache_size。
トランザクション中にバイナリログに対する SQL ステートメントを保持するキャッシュのサイズ。大きなマルチステートメントトランザクションを頻繁に使用する場合、この値を大きくすることによりパフォーマンスを向上できる。 See 項6.7.1. 「START TRANSACTION、COMMIT、ROLLBACK の各構文」。
bulk_insert_buffer_size(以前は myisam_bulk_insert_tree_size)
MyISAM は特殊なツリー状のキャッシュを使用して、バルク INSERT(INSERT ... SELECT、INSERT ... VALUES (...), (...), ...、LOAD DATA INFILE)を高速化する。この変数により、スレッドごとのキャッシュツリーのサイズが制限される(バイト単位)。この値を 0 に設定すると、最適化は無効になる。注意: このキャッシュは、空白でないテーブルに値を追加する場合にのみ使用される。デフォルト値は 8 メガバイトである。
character_set デフォルトのキャラクタセット。
character_sets サポートされるキャラクタセット。
concurrent_inserts ONの場合(デフォルト)、SELECT クエリを MyISAM テーブルで実行するとき、同時に INSERT も実行できる。このオプションをオフにするには、mysqld を --safe または --skip-new で起動する。
connect_timeout mysqld サーバが、Bad handshake を返すまでに接続パケットを待つ秒数。
datadir --datadir オプションの値。
delay_key_write MyISAM テーブルのオプション。以下のいずれかの値を指定できる。
| OFF | CREATE TABLE ... DELAYED_KEY_WRITE はすべて無視される。
|
| ON | (デフォルト)CREATE TABLE の DELAY_KEY_WRITE オプションが採用される。
|
| ALL | 新しく開かれるすべてのテーブルを、DELAY_KEY_WRITE オプションで作成されたように扱う。
|
DELAY_KEY_WRITE が有効の場合、このオプションのテーブルのキーバッファは、インデックスの更新ごとにはフラッシュされず、テーブルを閉じるときだけフラッシュされる。これにより、キーの書き込みはかなり速くなるが、これを使用する場合には、myisamchk --fast --force によりすべてのテーブルを自動的にチェックすべきである。
delayed_insert_limit delayed_insert_limit レコードを挿入後、INSERT DELAYED ハンドラは、保留中の SELECT ステートメントがないかチェックする。ある場合、ハンドラは処理を続行する前に保留中のステートメントの実行を許可する。
delayed_insert_timeout INSERT DELAYED スレッドが INSERT ステートメントを待機する時間。
delayed_queue_size INSERT DELAYED を処理するために割り当てられるキューのサイズ(レコード単位)。キューがいっぱいになると、INSERT DELAYED を実行するすべてのクライアントは、キューに空きができるまで待機する。
flush MySQL を --flush オプションで起動した場合は ON。
flush_time これを 0 以外の値に設定すると、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_query_expansion_limit クエリ拡張(MATCH ... AGAINST (... WITH QUERY EXPANSION))で使用される最上位マッチ数。このオプションは MySQL 4.1.1 で導入された。
ft_stopword_file 全文検索のストップワードリストが含まれているファイル。ファイル内のすべてのストップワードが使用される。コメントは使用されない。デフォルトでは、ストップワードの組み込みリストが使用される(myisam/ft_static.c で定義されているリスト)。このパラメータを空白の文字列("")に設定すると、ストップワードのフィルタリングが無効になる。注意: この変数を変更後、FULLTEXT インデックスを再ビルドする必要がある。このオプションは MySQL 4.0.10 で導入された。
have_innodb mysqld が InnoDB テーブルをサポートする場合は YES。--skip-innodb が使用されている場合は DISABLED。
have_bdb mysqld が Berkeley DB テーブルをサポートする場合は YES。--skip-bdb が使用されている場合は DISABLED。
have_raid mysqld が RAID オプションをサポートする場合は YES。
have_openssl mysqld がクライアントとサーバ間のプロトコルに SSL(暗号化)をサポートする場合は、YES。
init_file サーバの起動時に --init-file オプションで指定されたファイルの名前。これは、サーバの起動時に、サーバが実行する SQL ステートメントのファイルである。
interactive_timeout 対話式接続を終了する前に、サーバがアクティビティを待機する秒数。対話型クライアントは、mysql_real_connect() で CLIENT_INTERACTIVE オプションを使用するクライアントとして定義される。wait_timeout も参照のこと。
join_buffer_size 完全結合(インデックスを使用しない結合)に使用されるバッファのサイズ。2 つのテーブル間の完全結合ごとにバッファが割り当てられる。インデックスを追加できない場合に、完全結合を速くする目的でこの値を大きくする(通常、結合を速くする最良の方法はインデックスの追加である)。
key_buffer_size インデックスブロックはバッファされ、すべてのスレッドによって共有される。key_buffer_size は、インデックスブロック用に使用されるバッファのサイズである。
インデックス処理(すべての読み取りと複数書き込み)のパフォーマンスを向上させるため、この値は可能な限り大きくする。主に MySQL を実行する 256M マシンでは、64M が一般的である。ただし、これを大きくしすぎると(たとえば、メモリ合計の 50% 以上など)、システムがページングを開始し、処理速度が非常に遅くなる可能性がある。MySQL ではデータ読み取りをキャッシュしないため、OS ファイルシステムのキャッシュ用に領域を確保しておくことが必要である。
キーバッファのパフォーマンスを確認するには、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.6.8. 「SHOW 構文」。
多くのレコードを同時に書き込む場合にさらに速度を上げるには、LOCK TABLES を使用する。 See 項6.7.5. 「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 時間ではない。したがって、負荷の軽いシステムではしきい値より下のクエリも、負荷の重いシステムではしきい値より上になる場合がある。
See 項4.10.5. 「スロークエリログ」。
lower_case_table_names 1 に設定すると、テーブル名が小文字でディスクに格納され、テーブル名の比較で大文字と小文字が区別されなくなる。バージョン 4.0.2 以降、このオプションはデータベース名にも適用されるようになった。4.1.1 からは、テーブルエイリアスにも適用されるようになった。
See 項6.1.3. 「名前におけるケース依存」。
max_allowed_packet 1 パケットの最大サイズ。メッセージバッファは net_buffer_length バイトに初期化されるが、必要に応じて max_allowed_packet バイトまで大きくできる。このデフォルト値は、大きな(おそらく不正)パケットを受けるには小さすぎる。大きな BLOB カラムを使用している場合には、この値を大きくする必要がある。使用する最大の BLOB と同じ大きさにすべきである。max_allowed_packet のプロトコル制限は MySQL 3.23 で 16MB、MySQL 4.0 で 1GB である。
max_binlog_cache_size トランザクションでこれより多くのメモリが必要になると、"Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage" エラーが発生する。
max_binlog_size 3.23.33 で導入された。バイナリ(レプリケーション)ログファイルへの書き込みが、この値を超える場合、ログをローテートする。設定可能値は、4096 バイト(MySQL バージョン 4.0.14 より前は 1024)から 1 ギガバイト。デフォルトは 1GB。注意: トランザクションを使用している場合、トランザクションは 1 つのまとまりでバイナリログに書き込まれるため、複数のバイナリログに分割されることはない。したがって、大きなトランザクションがある場合、バイナリログが max_binlog_size より大きくなる可能性がある。max_relay_log_size(MySQL 4.0.14 で導入)が 0 の場合、max_binlog_size がリレーログにも適用される。
max_connections 認められる同時クライアントの数。この値を大きくすると、mysqld が必要とするファイル記述子の数が多くなる。ファイル記述子の制限については、以下を参照のこと。 See 項A.2.6. 「Too many connections エラー」。
max_connect_errors ホストからの接続中断回数がこの値より大きくなった場合、それ以降、そのホストからの接続はブロックされる。ホストのブロックを解除するには、FLUSH HOSTS コマンドを使用する。
max_delayed_threads INSERT DELAYED ステートメント処理に、この数より多くのスレッドを開始しない。すべての INSERT DELAYED スレッドが使用された後にデータを新規テーブルに挿入しようとすると、そのレコードは DELAYED 属性が指定されていないものとして挿入される。これを 0 に設定すると、max_delayed スレッドは生成されない。
max_heap_table_size この変数は、それ以降、新しく生成される HEAP テーブルの最大サイズを設定する。この変数の値を使用して、HEAP テーブルの MAX_ROWS 値が計算される。この変数の設定は、既存の HEAP テーブルには影響しない。ただし、CREATE TABLE、TRUNCATE TABLE などのステートメントで再生成したり、ALTER TABLE で変更した場合は適用される。
max_join_size max_join_size を超えるレコードを読み取る結合ではエラーを出力する。WHERE 節なしで時間がかかる何百万ものレコードを返す結合を実行するユーザがいる場合に、この値を設定する。
max_relay_log_size 4.0.14 で導入。リレーログ(レプリケーションスレーブによって使用されるログ。see 項4.11.3. 「レプリケーションの実装の詳細」)への書き込みが指定値を超える場合、リレーログをローテートする。この変数により、リレーログとバイナリログに異なるサイズの制約を加えることができる。ただし、この変数を 0 に設定すると、max_binlog_size がバイナリログとリレーログの両方に適用される。max_relay_log_size には 0、または 4097 以上 1GB 未満の値を設定できる。デフォルト値は 0。
max_seeks_for_key キーによるレコード検索の最大回数を制限する。MySQL オプティマイザは、キースキャンでテーブルからレコードを検索するときに、キーの基数には関係なく、キー検索の回数をこの指定値までと想定する。この値を低く(100 くらいに)設定することにより、MySQL はテーブルスキャンではなくキースキャンを優先的に行うようになる。
max_sort_length BLOB 値または TEXT 値をソートするときに使用するバイト数(各値の最初の max_sort_length バイトのみが使用され、残りは無視される)。
max_user_connections 単一ユーザのアクティブ接続の最大数(0 = 制限なし)。
max_tmp_tables このオプションはまだ利用不可。1 つのクライアントが同時に開いておけるテンポラリテーブルの最大数。
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 より前のバージョンではメガバイト単位、このバージョンからはバイト単位。
myisam_repair_threads。
この値が 1 より大きい場合、Repair by sorting プロセス中、MyISAM テーブルインデックスが、それぞれ独自のスレッドで平行して作成される。注意: マルチスレッド修復は、現在まだ alpha 段階。
myisam_max_sort_file_size REPAIR、ALTER TABLE、または LOAD DATA INFILE を使用したインデックスの再生成時、MySQL が使用できるテンポラリファイルの最大サイズ。ファイルサイズがこれより大きい場合、インデックスはキーキャッシュによって作成される(時間がかかる)。注意: このパラメータの値は、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 システムが mysqld に開くことを許可するファイルの数。これはシステムに指定されている実際の値であり、起動時のパラメータとして mysqld に指定したものとは異なっている場合がある。MySQL がオープンファイル数を変更できないシステムでは 0 になる。
pid_file --pid-file オプションの値。
port --port オプションの値。
protocol_version MySQL サーバによって使用されるプロトコルバージョン。
range_alloc_block_size 範囲の最適化で割り当てられるブロックのサイズ。
read_buffer_size(以前は record_buffer)
順次スキャンを実行する各スレッドは、スキャンする各テーブルにこのサイズのバッファを割り当てる。多くの順次スキャンを実行する場合には、この値を大きくすることが必要である。
read_rnd_buffer_size(以前は record_rnd_buffer)
ソート後、ソートされた順序でレコードを読み取る際、ディスク検索を行わないように、レコードをこのバッファから読み取る。この値を大きく設定すると、ORDER BY を大幅に向上できる。これはスレッド固有の変数であるため、これをグローバルに大きく設定すべきではないが、いくつかの特別大きなクエリを実行するときだけ変更する。
query_alloc_block_size クエリの解析および実行時に作成されるオブジェクトに割り当てられるメモリ割り当てブロックのサイズ。メモリの断片化に問題がある場合、これを少し大きくすると改善する可能性がある。
query_cache_limit これより大きい結果はキャッシュしない(デフォルトは 1M)。
query_cache_size 古いクエリの結果を保存するために割り当てられたメモリ。この値を 0 にすると、クエリキャッシュは無効になる(デフォルト)。
query_cache_type 次のいずれかの値(数値のみ)を設定できる。
| 値 | エイリアス | コメント |
| 0 | OFF | 結果のキャッシュおよび読み込みを行わない。 |
| 1 | ON |
SELECT SQL_NO_CACHE ... クエリを除くすべての結果をキャッシュする。
|
| 2 | DEMAND |
SELECT SQL_CACHE ... クエリのみキャッシュする。
|
query_prealloc_size クエリの解析および実行時に使用される永続バッファのサイズ。このバッファはクエリとクエリの間でも解放されない。理論的には、この値を ``十分大きく'' 設定することにより、MySQL は malloc() 呼び出しを 1 回も実行することなくクエリを実行できる。
safe_show_database ユーザがデータベース権限またはテーブル権限をまったく持たないデータベースは表示しない。これは、他のユーザが権限を持つデータベースを表示することができなくなるので、セキュリティの向上に役立つ。skip_show_database も参照のこと。
server_id --server-id オプションの値。
skip_locking mysqld が外部ロックを使用する場合は OFF。
skip_networking ローカル(ソケット)接続のみを認める場合は ON。
skip_show_database ユーザに PROCESS 権限がない場合、SHOW DATABASES の実行を認めない。これは、他のユーザが権限を持つデータベースを表示できなくなるので、セキュリティの向上に役立つ。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 項4.6.8.3. 「SHOW STATUS」。
この変数が大きく、FLUSH TABLES(すべてのテーブルを閉じて再び開く)をあまり実行しないのであれば、table_cache 変数の値を大きくすることが必要である。
テーブルキャッシュの詳細については、項5.4.7. 「MySQL でのテーブルのオープンとクローズの方法」 を参照のこと。
table_type デフォルトのテーブル型。
thread_cache_size 再利用のためにキャッシュに保持するスレッド数。クライアントが接続を切断したときに、以前のスレッド数が thread_cache_size 以下であれば、そのクライアントのスレッドはキャッシュに入る。新しいスレッドはすべてキャッシュから取り込まれ、キャッシュが空の場合のみ、新しいスレッドが作成される。新しい接続が多く発生する場合、この変数を大きくすることによりパフォーマンスを向上できる(スレッド実装が既に理想的な状態であれば、それほどパフォーマンスは向上しない)。Connections ステータス変数と Threads_created ステータス変数(詳細については、see 項4.6.8.3. 「SHOW STATUS」)の差異を調べることにより、スレッドキャッシュの効率性を確認できる。
thread_concurrency Solaris では、mysqld はこの値で thr_setconcurrency() を呼び出す。
thr_setconcurrency() により、アプリケーションは、同時に実行する理想的なスレッド数をスレッドシステムに指定する。
thread_stack 各スレッドのスタックサイズ。crash-me テストによって検知される制限の多くがこの値に依存する。通常の操作ではデフォルトで十分である。 See 項5.1.4. 「MySQL ベンチマークスィート」。
timezone サーバのタイムゾーン。
tmp_table_size メモリ内のテンポラリテーブルがこのサイズを超えると、MySQL は自動的にこれをディスク上の MyISAM テーブルに変換する。詳細な GROUP BY クエリを頻繁に行い、メモリに余裕がある場合は、tmp_table_size 値を大きくする。
tmpdir テンポラリファイルおよびテンポラリテーブル用ディレクトリ。MySQL 4.1 以降、複数のパスをコロン :(Windows ではセミコロン ;)で区切って設定できるようになっている。これは、ラウンドロビン方式で使用される。この機能は、複数の物理ディスクに負荷を分散する目的で使用できる。メモリベースのファイルシステムを指すように tmpdir を設定することは可能。ただし、MySQL サーバがスレーブの場合はできない。スレーブの場合、マシンがリブートしてもテンポラリテーブルのレプリケーションまたは LOAD DATA INFILE のレプリケーション処理を続行するためのテンポラリファイルが必要となる。そのため、マシンのリブートで消去されるメモリベースの tmpdir は適しない。ディスクベースの tmpdir が必要。
transaction_alloc_block_size コミットするときに、バイナリログに保存されるトランザクションの一部であるクエリを保存するために割り当てられるメモリ割り当てブロックのサイズ。
transaction_prealloc_block_size transaction_alloc_blocks の永続的バッファ。クエリとクエリの間でも解放されない。通常のトランザクションのすべてのクエリに対応できるように ``十分に大きく'' 設定すれば、malloc() を何度も呼び出さないで済む。
version サーバのバージョン番号。
wait_timeout 対話式ではない接続を終了する前に、サーバがアクティビティを待機する秒数。
スレッド開始時、SESSION.WAIT_TIMEOUT は、GLOBAL.WAIT_TIMEOUT または GLOBAL.INTERACTIVE_TIMEOUT によって初期化される。どちらになるかは、クライアントのタイプ(CLIENT_INTERACTIVE 接続オプションで定義)に依存する。interactive_timeout も参照のこと。
これら変数のチューニング方法については、MySQL のチューニングに関するセクションを参照してください。 See 項5.5.2. 「サーバパラメータのチューニング」。