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. 「サーバパラメータのチューニング」。
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.