MySQL 5.1 リファレンスマニュアル :: 4 データベース管理 :: 4.2 mysqld — MySQL サーバ :: 4.2.3 システム変数
« 4.2.2 コマンド オプション

4.2.4 システム変数の使用 »
Section Navigation      [Toggle]
  • 4.2 mysqld — MySQL サーバ
  • 4.2.1 オプションと変数のリファレンス
  • 4.2.2 コマンド オプション
  • 4.2.3 システム変数
  • 4.2.4 システム変数の使用
  • 4.2.5 ステータス変数
  • 4.2.6 SQL モード
  • 4.2.7 シャットダウン プロセス
  • 4.2.8 サーバ サイド ヘルプ

4.2.3. システム変数

mysql サーバは、様々なシステム変数を保有しています。そしてその変数は、設定がどのようになっているかを示します。それぞれのシステム変数にはデフォルト値がありますが、サーバ起動時に、コマンドラインまたはオプション ファイルなどを使用して変更できます。大抵の場合、SET コマンドを使用して実行中のサーバで動的に変更できます。つまり、サーバを停止または再起動などで操作を中断しなくても変更することが可能であるということです。システム変数の値は、プログラミング式で指定します。

システム変数の名前や値を確認する方法 (コマンド)

  • サーバで使用しているコンパイルのデフォルト値や、読み込むオプション ファイルの所在を確認するコマンド

    mysqld --verbose --help
    
  • サーバが元にするコンパイルのデフォルト値や、オプション ファイルの設定がどうなっているか (無視するかどうか) を確認するコマンド

    mysqld --no-defaults --verbose --help
    
  • 実行中のサーバでカレント値を確認するには、SHOW VARIABLES ステートメントを使用すること。

このセクションでは、それぞれのシステム変数について説明します。バージョン情報を記載していない変数は、MySQL 5.1 リリースで導入した変数です。実装/導入履歴に関する情報は、MySQL 5.0 Reference Manual または MySQL 3.23, 4.0, 4.1 リファレンス マニュアル をそれぞれ参照してください。

その他のシステム変数に関する詳細は、次のセクションを参照してください。

  • 項4.2.4. 「システム変数の使用」 では、システム変数値に関する構文規則と表示方法について説明します。

  • 項4.2.4.2. 「動的システム変数」 では、ランタイムで設定できる変数をリストしています。

  • システム変数の調整に関する情報は 項6.5.2. 「サーバパラメータのチューニング」 を参照してください。

  • 項13.5.4. 「InnoDB 起動オプションとシステム変数」 では、InnoDB システム変数をリストしています。

ノート:次に示す変数説明は、変数を 「可能にする (有効化)」 または 「不可能にする (無効化)」 ということに言及しています。これらの変数は SET コマンドを ON または 1 に設定すると実行可能であることを示し、あるいは OFF または 0 に設定すると実行不可能であることを示します。コマンドラインまたはオプション ファイルで変数を設定するには、1 または 0 のいずれかを使用してください。ON または OFF を使用すると機能しません。たとえば、コマンドラインの場合に、--delay_key_write=1 のオプションは動作しますが、 --delay_key_write=ON では動作しません。

バッファ サイズ、長さ、スタック サイズなどの値は、指定がない限り、バイトで与えます。

  • auto_increment_increment

    auto_increment_increment と auto_increment_offset はマスタからマスタへのレプリケーションに使用する。AUTO_INCREMENT カラムの操作の制御に使用できる。この変数には、グローバルまたはローカルで設定でき、それぞれで 1 から 65,535 までの整数を使用できる。これら 2 種類の変数のどちらかを 0 に設定すると、1 での設定したものとの解釈になる。65,535 より大きな整数、あるいは 0 ではない数字でこれらの変数のどちらかを設定すると、65,535 で設定したものとの解釈になる。auto_increment_increment または auto_increment_offsetに、整数以外の値を使用すると、反映できずエラーになり、変数の実際の値 (デフォルト) のままになる。

    重要 auto_increment_increment と auto_increment_offset は MySQL Cluster レプリケーションには使用しないでください。MySQL Cluster レプリケーションでこの 2 つの変数を使用すると、予期せぬエラーまたは回復不能な状態にある可能性があります。そのため、Cluster レプリケーションでの この 2 つの変数においては、サポートしていません。

    これら 2 つの変数は AUTO_INCREMENT カラムの動作に次のように影響する。

    • auto_increment_increment は自動インクリメントの間隔値を制御する。次はその例示である。

      mysql> SHOW VARIABLES LIKE 'auto_inc%';
      +--------------------------+-------+
      | Variable_name            | Value |
      +--------------------------+-------+
      | auto_increment_increment | 1     |
      | auto_increment_offset    | 1     |
      +--------------------------+-------+
      2 rows in set (0.00 sec)
      
      mysql> CREATE TABLE autoinc1
          -> (col INT NOT NULL AUTO_INCREMENT PRIMARY KEY);
        Query OK, 0 rows affected (0.04 sec)
      
      mysql> SET @@auto_increment_increment=10;
      Query OK, 0 rows affected (0.00 sec)
      
      mysql> SHOW VARIABLES LIKE 'auto_inc%';
      +--------------------------+-------+
      | Variable_name            | Value |
      +--------------------------+-------+
      | auto_increment_increment | 10    |
      | auto_increment_offset    | 1     |
      +--------------------------+-------+
      2 rows in set (0.01 sec)
      
      mysql> INSERT INTO autoinc1 VALUES (NULL), (NULL), (NULL), (NULL);
      Query OK, 4 rows affected (0.00 sec)
      Records: 4  Duplicates: 0  Warnings: 0
      
      mysql> SELECT col FROM autoinc1;
      +-----+
      | col |
      +-----+
      |   1 |
      |  11 |
      |  21 |
      |  31 |
      +-----+
      4 rows in set (0.00 sec)
      

      注意: ここでは SHOW VARIABLES を変数値 (カレント値) を取得する目的で使用しています。

    • auto_increment_offset は AUTO_INCREMENT カラム値の開始点を決定する。次の例示は、 auto_increment_increment 記述の例で、ステートメントを同一のセッション中に実行した場合である。

      mysql> SET @@auto_increment_offset=5;
      Query OK, 0 rows affected (0.00 sec)
      
      mysql> SHOW VARIABLES LIKE 'auto_inc%';
      +--------------------------+-------+
      | Variable_name            | Value |
      +--------------------------+-------+
      | auto_increment_increment | 10    |
      | auto_increment_offset    | 5     |
      +--------------------------+-------+
      2 rows in set (0.00 sec)
      
      mysql> CREATE TABLE autoinc2
          -> (col INT NOT NULL AUTO_INCREMENT PRIMARY KEY);
      Query OK, 0 rows affected (0.06 sec)
      
      mysql> INSERT INTO autoinc2 VALUES (NULL), (NULL), (NULL), (NULL);
      Query OK, 4 rows affected (0.00 sec)
      Records: 4  Duplicates: 0  Warnings: 0
      
      mysql> SELECT col FROM autoinc2;
      +-----+
      | col |
      +-----+
      |   5 |
      |  15 |
      |  25 |
      |  35 |
      +-----+
      4 rows in set (0.02 sec)
      

      auto_increment_offset の値が、auto_increment_increment の値よりも大きい場合、auto_increment_offset の値は無効になる。

    ここで、これら変数のどちらか、あるいは両方が変更して、新規の行をテーブルの AUTO_INCREMENT カラムに挿入していなければならない。結果は直感的のようにも思えるが、これは既にカラムに存在している値を無視して、AUTO_INCREMENT 値で計算している。つまり、挿入した値が AUTO_INCREMENT カラムの最大値よりも大きいシリーズの最小値であることが原因である。つまり、シリーズが次のように計算したことに起因する。

    auto_increment_offset + N × auto_increment_increment

    N が [1, 2, 3, ...] のシリーズの正の整数。たとえば次の例示の通り。

    mysql> SHOW VARIABLES LIKE 'auto_inc%';
    +--------------------------+-------+
    | Variable_name            | Value |
    +--------------------------+-------+
    | auto_increment_increment | 10    |
    | auto_increment_offset    | 5     |
    +--------------------------+-------+
    2 rows in set (0.00 sec)
    
    mysql> SELECT col FROM autoinc1;
    +-----+
    | col |
    +-----+
    |   1 |
    |  11 |
    |  21 |
    |  31 |
    +-----+
    4 rows in set (0.00 sec)
    
    mysql> INSERT INTO autoinc1 VALUES (NULL), (NULL), (NULL), (NULL);
    Query OK, 4 rows affected (0.00 sec)
    Records: 4  Duplicates: 0  Warnings: 0
    
    mysql> SELECT col FROM autoinc1;
    +-----+
    | col |
    +-----+
    |   1 |
    |  11 |
    |  21 |
    |  31 |
    |  35 |
    |  45 |
    |  55 |
    |  65 |
    +-----+
    8 rows in set (0.00 sec)
    

    auto_increment_increment と auto_increment_offset で示している値は、5 + N × 10 のシリーズを生成する。つまり、[5, 15, 25, 35, 45, ...] である。INSERT 前の col カラムの最大値は 31 で、AUTO_INCREMENT シリーズで次に利用可能な値は 35 。そして col の挿入値はその時点から始まり、その結果が SELECT クエリの表示になる。

    ここで重要なことは、1 つのテーブルにこれら 2 つの変数をした場合の効果を制限することはできないということである。ゆえに、別のデータベース管理システムで提供しているシーケンスとは併用できない。この変数は、MySQL サーバの すべて のテーブルにある AUTO_INCREMENT カラムのすべての動作を制御する。この変数のどちらかをグローバルでセットした場合、グローバル値を変更するか、またはローカルでこれらを設定して上書きするまで、あるいは mysqld が再起動するまで、その効果が続くことになる。ローカルで設定した場合、新しい値はすべてのテーブルの AUTO_INCREMENT カラムに影響し、そのセッションのユーザが新たな行を挿入することになる。つまり値がセッション中に変更することになる。

    auto_increment_increment のデフォルト値は 1 。詳細は 項5.2.3.1. 「Auto-Increment in Multiple-Master Replication」 を参照のこと。

  • auto_increment_offset

    この変数のデフォルト値は 1。auto_increment_increment での記述も参照のこと。

  • automatic_sp_privileges

    この変数が 1 (デフォルト) の場合、サーバが自動的に EXECUTE および ALTER ROUTINE の権限をストアド ルーチンのクリエータに与える。(ALTER ROUTINE 権限で、ルーチンをドロップの対象にする。) つまりサーバが、クリエータのルーチンをドロップするときに、自動的にこの権限もドロップする。automatic_sp_privileges が 0 の場合、サーバは自動的にはドロップしない。権限もドロップの対象にはならない。

  • back_log

    MySQL で保持できる未解決の接続要求数。これは、短時間にメインの MySQL スレッドに多くの接続要求が集中したときに機能する (役立つ)。そして、メイン スレッドが接続をチェックするため、新規スレッドの開始には時間(若干)がかかる。つまり back_log 値は、MySQL が一時的に新規要求への回答を停止するまでの瞬時に、スタック可能な要求の数を示す。短時間に多くの接続要求数がある場合にだけ、この値を大きくする。

    つまり、この値は、TCP/IP 接続のリッスン キューのサイズである。使用しているオペレーティング システムそのものにも、このキュー サイズの制限がある。詳細については、Unix listen() システムコールのマニュアルページを参照のこと。この変数の最大値については、OS のドキュメントを参照する。back_log を、オペレーティングシステムの制限値より大きくしても、効果はない。

  • basedir

    基準パスを指定する。MySQL をインストールしたディレクトリを指す。--basedir オプションで起動時に設定できる。

  • binlog_cache_size

    トランザクション中にバイナリ ログに対する SQL ステートメントを保持するキャッシュのサイズ。(トランザクション間でメモリに保持する SQL文の最大数。) サーバがトランザクションのストレージ エンジンをサポートする場合、あるいはサーバで --log-bin オプションを使用して、バイナリ ログを可能にしている場合、バイナリ ログ キャッシュをクライアントに割り当てる。大きな複数ステートメントのトランザクションが頻繁にある場合、この値を大きくすると、パフォーマンスを向上できる。Binlog_cache_use と Binlog_cache_disk_use のステータス変数はこの変数のサイズ調整に便利である。詳細は 項4.11.4. 「バイナリ ログ」 を参照のこと。

  • binlog_format

    バイナリ ロギング形式。STATEMENT、ROW、MIXED のどれかになる。binlog_format は 起動時に --binlog-format オプションで設定する。または、ランタイムで binlog_format 変数でも設定できるが、グローバル スコープでこの変数を設定するには、SUPER 権限が必要になる (項5.1.2. 「レプリケーション フォーマット」 を参照のこと)。(スタートアップ変数の導入:MySQL 5.1.5、ランタイム変数の導入:MySQL 5.1.8、MIXED の導入:MySQL 5.1.8)

    デフォルトでは STATEMENT を使用。MIXED を指定して、ステートメント ベースのレプリケーションにすることもできる。ただし、行ベースのレプリケーションで正確な結果を保証する場合 (その必要がある場合)、たとえば、ユーザ定義関数 (UDF)、または UUID() 関数を含むステートメントの場合には、この限りではない (別の事情がある)。格納ルーチン (stored functions) やトリガなどに、MIXED を指定して、ステートメント ベースのレプリケーションを行う場合も例外である。

    ランタイムでレプリケーションの仕方を切り替えることができない場合

    • 格納関数またはトリガ内からの場合

    • NDB を有効化している場合

    • セッションのレプリケーション モードが行ベースで、テンポラリ テーブルを開けている場合

    この 3 つのどれかに該当する場合に、レプリケーションの仕方を変更すると、エラーになる。

    MySQL 5.1.8 前は、行ベース レプリケーションの仕方を変更することは --log-bin-trust-function-creators=1 および --innodb_locks_unsafe_for_binlog を明示的に設定するとしていた。しかし、MySQL 5.1.8 以降 (MySQL 5.1.8 を含む) は、行ベースのレプリケーションにこのオプションで明示設定しても、通用しない。

  • bulk_insert_buffer_size

    空白ではないテーブルにデータを追加する場合に、MyISAM は特殊なツリー状のキャッシュを使用して、バルクの INSERT ... SELECT、INSERT ... VALUES (...), (...), ...、LOAD DATA INFILEを高速化する。この変数で、スレッドごとのキャッシュ ツリーのサイズを制限する(バイト単位)。この値を 0 に設定すると、最適化は無効になる。デフォルト値は 8 MB 。

  • character_set_client

    クライアント送信の文字列のキャラクタ セット (クライアントが送信するキャラクタ セット)。

  • character_set_connection

    キャラクタ セット情報がないリテラルの並びで、数値→文字と変換するときのキャラクタ セット。

  • character_set_database

    デフォルト データベースで使用するキャラクタ セット。デフォルト データベースが変化する度に、サーバがこの変数を変更する。デフォルト データベースが存在しない場合、この値は character_set_server と同一。

  • character_set_filesystem

    ファイルシステムのキャラクタ セット。LOAD DATA INFILE や SELECT ... INTO OUTFILE などのステートメントや LOAD_FILE() 関数に対して、この変数でファイル名とリテラルの文字列を読み取る。ファイルを開けようとすると、ファイル名が character_set_client から character_set_filesystem に変わる。デフォルト値は binary (変換が起こらない) である。マルチ バイトのファイル名を利用できるシステムでは、異なる値を使用することが好ましい。たとえば、UTF-8 でファイル名を表示しているシステムの場合は、character_set_filesytem を 'utf8' にセットする。(MySQL 5.1.6 実装)

  • character_set_results

    クライアントへ返す文字列 (クエリ結果) のキャラクタ セット。

  • character_set_server

    サーバのデフォルトのキャラクタ セット。

  • character_set_system

    識別子の書き出しにサーバが使用するキャラクタ セット。この値は常に utf8。

  • character_sets_dir

    キャラクタ セットを格納しているディレクトリ。

  • collation_connection

    接続キャラクタ セットの照合順序。

  • collation_database

    デフォルト データベースの照合順序。デフォルト データベースが変化する度に、サーバがこの変数を変更する。デフォルトデータベースが存在しない場合、この値は collation_server と同一。

  • collation_server

    サーバのデフォルトの照合順序

  • completion_type

    トランザクションのコンプリーション タイプ

    • 値が 0 (デフォルト) の場合、COMMIT および ROLLBACK には影響しない。

    • 値が 1 の場合、COMMIT は COMMIT AND CHAINに、ROLLBACK は ROLLBACK AND CHAIN に相当する。(新たなトランザクションが終了したばかりのトランザクションと同一の分離レベルで始まる。)

    • 値が 2 の場合、COMMIT は COMMIT RELEASE に、ROLLBACK は ROLLBACK RELEASE に相当する。(サーバはトランザクションを終えると切断する。)

  • concurrent_insert

    ON (デフォルト) の場合、INSERT および SELECT ステートメントを MyISAM テーブルで同時に実行できる (間にフリー ブロックがない場合)。このオプションを使用しないように設定するには、mysqld を --safe または --skip-new で起動する。

    この変数では次の整数値を使う。

    値 説明
    0 オフ
    1 (デフォルト) ホールがない MyISAM テーブルに同時挿入
    2 すべての MyISAM テーブルに同時挿入。テーブルにホールがあり、別のスレッドで使用している場合、新規の行はテーブル末尾への挿入となる。テーブルが使用中でなければ、MySQL が通常の読み込みロックを行い、新規の行をホールへ挿入する。

    項6.3.3. 「同時挿入」 を参照のこと。

  • connect_timeout

    mysqld サーバが、Bad handshake を返すまで、接続パケットを待つ秒数

  • datadir

    MySQL をインストールしたディレクトリ。この変数は --basedir オプションで設定できる。

  • date_format

    この変数は実装していない。

  • datetime_format

    この変数は実装していない。

  • default_week_format

    デフォルト モード値。WEEK() 関数に使う。詳細は 項11.5. 「日付時刻関数」 を参照のこと。

  • delay_key_write

    MyISAM テーブルにだけ使えるオプション。この値は、CREATE TABLE ステートメントに使用するときに、DELAY_KEY_WRITE テーブル オプションの処理に影響する。次の表で値の詳細を参照のこと。

    オプション 説明
    OFF DELAY_KEY_WRITE は無視。
    ON MySQL は CREATE TABLE ステートメント指定の DELAY_KEY_WRITE オプションを優先する。(デフォルト)
    ALL 新規の開テーブルすべてを DELAY_KEY_WRITE オプションを実行可能にして作成したかのように処理する。

    DELAY_KEY_WRITE をテーブルに対して可能にした場合、インデックス更新でキー バッファのフラッシュではなく、テーブルが閉じたときにだけフラッシュする。これを利用すると、キーの書き込みスピードを速めることが可能である。ただし、これを使用する場合には、--myisam-recover オプションでサーバを立ち上げて、すべての MyISAM テーブルの自動チェックを設定しておく必要がある (例: --myisam-recover=BACKUP,FORCE)。詳細は 項4.2.2. 「コマンド オプション」 および 項13.4.1. 「MyISAM スタートアップオプション」 を参照のこと。

    ノート: --external-locking で外部ロックを有効化した場合、遅延キー書き込み (delayed key write) があるテーブルのインデックス破損に対するプロテクションがなくなる。

  • delayed_insert_limit

    delayed_insert_limit レコードを挿入後、INSERT DELAYED ハンドラは、保留中の SELECT ステートメントがあるかどうかチェックする。ステートメントがある場合、ハンドラは処理を続行する前に保留中のステートメントの実行を許可する。

  • delayed_insert_timeout

    INSERT DELAYED ハンドラ スレッドが INSERT ステートメントを待機する時間。

  • delayed_queue_size

    INSERT DELAYED を処理時のテーブルあたりのキューの最大値(レコード単位)。キューが最大値に達すると、INSERT DELAYED を実行するすべてのクライアントは、キューに空きができるまで待機する。

  • div_precision_increment

    この変数は、小数点以下の桁数を示す。DIV演算子(/) での演算結果を高める。デフォルト値は 4 。最小値は 0 、最大値は 30。次の例はデフォルト値を高めた場合の効果を示す。

    mysql> SELECT 1/7;
    +--------+
    | 1/7    |
    +--------+
    | 0.1429 |
    +--------+
    mysql> SET div_precision_increment = 12;
    mysql> SELECT 1/7;
    +----------------+
    | 1/7            |
    +----------------+
    | 0.142857142857 |
    +----------------+
    
  • event_scheduler

    この変数は Event Scheduler (イベント スケジューラ) のステータス (状態) を示す。MySQL 5.1.12 から予定している値は、ON、OFF 、DISABLED。OFF をデフォルトとする。Event Scheduler 操作における、この変数とその効果は、 リンク (Events 関連の概略) を参照のこと。

    (MySQL 5.1.6 での追加)

  • engine_condition_pushdown

    この変数は、NDB に適用する。デフォルトでは 0 (OFF)。SELECT * FROM t WHERE mycol = 42 のように mycol でインデックス化してないカラムのクエリを実行する場合、そのクエリは NDB ノード毎にフル テーブル スキャンの対象になる。それぞれのノードで SQL サーバにすべての行 (レコード) を送り、 WHERE 条件なる。engine_condition_pushdown を 1 (ON) にセットすると、条件はストレージ エンジンまで 「押し下げられ」、NDB ノードにまで届く。それぞれのノードでスキャンを行う条件を持っているため、MySQL サーバにその条件に適合する行を送り返す。

  • expire_logs_days

    バイナリ ログの自動削除の日数を指定する。 デフォルトは 0 で 「自動削除しない」 ことを意味する。MySQLサーバ起動時もしくは ログをローテートするときが、ログを削除するタイミングである。

  • flush

    ON の場合、SQL ステートメントの後で、サーバがすべての変更をデスクにフラッシュ (同期) する。通常、MySQL は、SQL ステートメントで、すべての変更をデスクに書き込むことはなく、オペレーティング システムにディスクとの同期を任せる。項B.1.4.2. 「What to Do If MySQL Keeps Crashing」 を参照のこと。--flush オプションで mysqld を立ち上げる場合には、この変数を ON に設定する。

  • flush_time

    これを 0 以外の値に設定する場合、リソースの解放と未フラッシュ データのディスクへ同期するために、flush_time 秒ごとにすべてのテーブルを閉じる。Windows 9x、Me など別リソースに限りがあるシステムの場合にだけ、このオプションを使用する (推奨)。

  • ft_boolean_syntax

    IN BOOLEAN MODE を使用しているブーリアン全文検索をサポートする演算子一覧。詳細は 項11.7.1. 「ブール全文検索」 を参照のこと。

    デフォルトの変数値は '+ -><()~*:""&|' である。この値を変更するときのルールは次の通り。

    • 演算子の関数を文字列中の位置で決定している。

    • 置換値は 14 文字である。

    • 文字に ASCII の非英数字を使用している。

    • 最初 (先頭) または2番目の文字がスペース (空白文字) である。

    • 重複する文字を使用していない。(11 または 12 番目にクオート文字の重複は可。この2文字は同一である必要はないが、同一でなければならないこともある。)

    • 10、13、14番目の文字である。(デフォルトでは ‘:’、‘&’、‘|’) はリザーブである。

  • ft_max_word_len

    FULLTEXT インデックスの単語 (word) の最大文字数

    ノート:FULLTEXT インデックスは、変数を変更すると、再ビルドしなければならない。REPAIR TABLE tbl_name QUICK を使用のこと。

  • ft_min_word_len

    FULLTEXT インデックスの単語の最小文字数

    ノート:FULLTEXT インデックスは、変数を変更すると、再ビルドしなければならない。REPAIR TABLE tbl_name QUICK を使用のこと。

  • ft_query_expansion_limit

    WITH QUERY EXPANSION を使用した全文検索の最上位マッチ数。

  • ft_stopword_file

    全文検索のストップワード リストのファイル。ファイル内のすべてのストップワードが使用対象になるが、コメントは使用しない。デフォルトは、ストップワードの組み込みリストを使用する ( storage/myisam/ft_static.c ファイルの定義)。このパラメータを空白の文字列('')に設定すると、ストップワードのフィルタリングを無効化する。

    ノート:変数またはストップワードの内容を変更すると、FULLTEXT インデックスを再ビルドしなければならない。REPAIR TABLE tbl_name QUICK を使用のこと。

  • general_log

    一般クエリ ログを有効化しているかどうかを示す。値が 0 (または OFF) の場合、ログしない。値が 1 (または ON) の場合、ログする。デフォルトは --log オプションを設定しているかどうかによる。ログ出力先は log_output システム変数で制御する。値を NONE にした場合、ログできるようにしていても、エントリを書き込まない。(general_log は MySQL 5.1.12 での導入)

  • general_log_file

    一般クエリ ログ ファイルの名前。デフォルトは host_name.log 。初期値は --log オプションで変更可能。(MySQL 5.1.12 から導入)

  • group_concat_max_len

    GROUP_CONCAT() 関数の最大許容結果長さ (返却値の最大文字数) デフォルトは 1024 。

  • have_archive

    YES: mysqld で ARCHIVE テーブルをサポートする場合。NO: そうでない場合。

  • have_blackhole_engine

    YES : mysqld で BLACKHOLE テーブルをサポートしている場合。 NO :そうでない場合。

  • have_compress

    YES : zlib 圧縮ライブラリをサーバで利用できる場合。NO :そうでない場合 (このときは、COMPRESS() および UNCOMPRESS() 関数は使用できない)。

  • have_crypt

    YES : crypt() システム コールをサーバで利用きる場合。NO :そうでない場合 (このときは、ENCRYPT() 関数は使用できない)。

  • have_csv

    YES : mysqld で ARCHIVE テーブルをサポートする場合。 NO :そうでない場合。

  • have_dynamic_loading

    YES : mysqld で動的ロードのプラグインをサポートする場合。 NO :そうでない場合。(MySQL 5.1.10 から導入)

  • have_example_engine

    YES : mysqld で EXAMPLE テーブルをサポートしている場合。 NO :そうでない場合。

    have_federated_engine

    YES : mysqld で FEDERATED テーブルをサポートする場合。 NO :そうでない場合。

  • have_geometry

    YES :サーバで空間データ型 (spatial) をサポートしている場合。NO そうでない場合

  • have_innodb

    YES : mysqld で InnoDB テーブルをサポートしている場合。DISABLED : --skip-innodb を使用している場合。

  • have_ndbcluster

    YES : mysqld で NDB Cluster テーブルをサポートしている場合。DISABLED : --skip-ndbcluster を使用している場合。

  • have_partitioning

    YES : mysqld でパーティショニング (領域確保) をサポートしている場合。(MySQL 5.1.1 から導入。MySQL 5.1.6 では、have_partition_engine から have_partioning になった (改名)。

  • have_openssl

    YES : mysqld で SSL 接続をサポートする場合。 NO :そうでない場合。

  • have_query_cache

    YES : mysqld で クエリ キャッシュをサポートする場合。 NO :そうでない場合。

  • have_row_based_replication

    YES :サーバで行ベースのバイナリ ロギングのレプリケーションを実行できる場合。NO : サーバでステートメント ベースのロギングを行う。詳細は 項5.1.2. 「レプリケーション フォーマット」 を参照のこと。(MySQL 5.1.5 から導入したが、MySQL 5.1.15 で削除している。)

  • have_rtree_keys

    YES : RTREE インデックスを利用できる場合。NO :そうでない場合。(MyISAM テーブルの空間インデックスで使用している。)

  • have_symlink

    YES : シンボリック リンク サポートを有効化している場合。NO : そうでない場合。Unix では DATA DIRECTORY および INDEX DIRECTORY のテーブル オプションを必要とする。Windows では、データ ディレクトリの symlink 関数を必要とする。

  • init_connect

    クライアント接続でサーバが実行する文字列。この文字列は 1 つ以上の SQL ステートメントから成る。複数のステートメントを指定するには、セミコロンで文字を区切る。たとえば、クライアントで自動コミット (autocommit) モードを有効にしていた場合に、クライアントでデフォルトとして開始する。自動コミットをデフォルトで無効にするグローバル変数は存在しないが、init_connect を使用すると、同様の効果を期待できる (複数のステートメントを指定する)。

    SET GLOBAL init_connect='SET AUTOCOMMIT=0';
    

    これの変数は、コマンドラインまたはオプション ファイルで設定できる。オプション ファイルで変数を設定するには、次のラインを使用する。

    [mysqld]
    init_connect='SET AUTOCOMMIT=0'
    

    ノート: init_connect の内容は SUPER 権限のあるユーザには通用しない。つまり、init_connect の誤値がクライアント接続を阻止しないようにしている。たとえば、シンタックス エラーを保持する値がステートメントにあると、クライアント接続に支障をきたす。SUPER 権限を持つユーザに対して init_connect を実行しないということは、ユーザとの接続と init_connect の値に対して害を与えないということである。

  • init_file

    サーバ起動時に、--init-file オプションで指定するファイルの名前。このファイルに起動時に実行する (したい) SQL ステートメントを組み込む。それぞれのステートメントを一行命令文として、コメントは入れないこと。

    ノート: --init-file オプションは、MySQL を --disable-grant-options オプションでコンフィギャしている場合には利用不可。詳細は 項2.9.2. 「典型的な configure オプション」 を参照のこと。

  • init_slave

    init_connect に類似する。SQL スレッドを開始するときにスレーブ サーバが実行する文字列。.この文字列の形式は init_connect と同一である。

  • innodb_xxx

    InnoDB システム変数は 項13.5.4. 「InnoDB 起動オプションとシステム変数」 を参照のこと。

  • interactive_timeout

    対話式接続を終了する前に、サーバがアクティビティを待機する秒数。対話型クライアントの定義は、mysql_real_connect() で CLIENT_INTERACTIVE オプションを使用するクライアントのことである。wait_timeout も参照のこと。

  • join_buffer_size

    完全結合(インデックスを使用しない結合)に使用するバッファのサイズ。これにより、フル テーブル スキャンを実行できる。一般的には、結合を高速化する最良の方法は、インデックスを追加することである。しかし、インデックスを追加できない場合に、 join_buffer_size の値を大きくすると結合が速くなる (完全結合になる)。つまり、2 つのテーブル間の完全結合ごとにバッファを割り当てる。テーブル間の結合が複雑な場合は、複合バッファを必要とすることもある。

  • key_buffer_size

    MyISAM テーブルのインデックス ブロックをバッファし、すべてのスレッドで共有。key_buffer_size は、インデックス ブロックに使用するバッファのサイズである。キー バッファはキー キャッシュのこと。

    key_buffer_size の最大値は 4 GB 。物理 RAM、RAM 制限、オペレーティング システム、プラットフォームの状態などによるが、効果的な設定値としては、4 GB を下回る程度が良い。

    環境に応じて、インデックス処理 (すべての読み込みと複数の書き込み) を改善する目的で、この値を大きくできる。一般的には、マシンのメモリ使用率 25 % の値であることが好ましい。使用率の 50 % にすると、値が大き過ぎるため、システム処理が極端に遅くなる。MySQL のデータ読み込みのファイルシステムのキャッシュは OS に依存しているため、ファイル キャッシュ用にスペースに余裕を持たせることが必要である。別のストレージ エンジンの必要メモリに関しても検討のこと。

    同時書き込みが多い場合などに、スピードを上げるには、LOCK TABLES を使用する。詳細は 項6.2.16. 「INSERTステートメントの速度」 を参照のこと。

    キー バッファのパフォーマンスをチェックするには、SHOW STATUS ステートメントを発行し、Key_read_requests、Key_reads、Key_write_requests、そして Key_writes の変数を調べる (項12.5.4. 「SHOW 構文」 を参照)。一般的には Key_reads/Key_read_requests の比率は、0.01 より小さいことが望ましい。操作がほとんど更新と削除だけの場合は Key_writes/Key_write_requests の比率は 1 に近い。同時に多くの行に影響を与える更新を行う場合や、DELAY_KEY_WRITE テーブル オプションを使用している場合には、より小さい比率になる。

    使用中のキー バッファのフラクション (破片) は、バッファ ブロック サイズと、key_buffer_size に Key_blocks_unused を併用して決めることができる。これは、key_cache_block_size システム変数から利用可能。

    1 - ((Key_blocks_unused × key_cache_block_size) / key_buffer_size)
    

    これは近似値である。キー バッファのスペースによっては、管理ストラクチャに対して内部的に割り当てを行っているので、近似とする。

    MyISAM の複数キー キャッシュを作成することが可能である。サイズの上限は、4 GB で、グループごとではなく、キャッシュごとに適用する。詳細は 項6.4.6. 「MyISAMキーキャッシュ」 を参照のこと。

  • key_cache_age_threshold

    この値は、キー キャッシュの hot サブ チェーンから warm サブ チェーンへのバッファ降格を制御する。この値が小さいと降格は急激に起こる。最小値は 100。デフォルトは 300。詳細は 項6.4.6. 「MyISAMキーキャッシュ」 を参照。

  • key_cache_block_size

    キー キャッシュのブロック サイズをバイト単位 (byte)。 デフォルトは 1024 。詳細は 項6.4.6. 「MyISAMキーキャッシュ」 を参照のこと。.

  • key_cache_division_limit

    キー キャッシュのバッファ チェーンにおける hot と warm のサブ チェーン間のディビジョン ポイント (分岐点)。 この値は、warm のサブ チェーンに使用するバッファ チェーンのパーセンテージである。許容範囲は 1 から 100 まで。デフォルトは 100 。詳細は 項6.4.6. 「MyISAMキーキャッシュ」 を参照のこと。

  • language

    エラー メッセージに使用する言語。

  • large_file_support

    mysqld を大きなファイルをサポートするオプションでコンパイルしているかどうか (を指す)。

  • large_pages

    大きなページをサポートしている場合の戻値。

  • lc_time_names

    ロケールを指定する。これは月日、略語などを表示する言語を制御する。DATE_FORMAT()、DAYNAME()、MONTHNAME() などの関数からの出力に影響する。ローケル名は POSIX 標準で、'ja_JP' または 'pt_BR' などとする。デフォルトはシステムのローケル設定を問わず、'en_US' である。詳細は 項4.10.9. 「MySQL サーバのローケル サポート」 を参照のこと。(MySQL 5.1.12 で導入)

  • license

    サーバのライセンス タイプ (種類)

  • local_infile

    LOAD DATA INFILE ステートメントで、LOCAL をサポートしているかどうか (を指す)。詳細は 項4.6.4. 「LOAD DATA LOCAL のセキュリティ関連事項」を参照のこと。

  • locked_in_memory

    --memlock によるメモリのロックが mysqld で有効かどうか (を指す)。

  • log

    すべてのクエリのログを有効にしているかどうか (を指す)。項4.11.3. 「一般クエリ ログ」 を参照のこと。

  • log_bin

    バイナリ ログを有効にしているかどうか (を指す)。 項4.11.4. 「バイナリ ログ」 を参照のこと。

  • log_bin_trust_function_creators

    この値はバイナリ ログを有効化しているときに適用。Stored Function (関数) を作成するユーザが、 信用できない関数を作成する可能性を制御する。つまり、バイナリ ログへの書き込みに対して危険な関数を発行しないようにする。 この値を 0 (デフォルト) にする場合、CREATE ROUTINE、ALTER ROUTINE 権限のいずれかに加え、SUPER 権限を持たないユーザによる関数の作成 (置換) を許可しない。 0 にすると、その制限が強まり、DETERMINISTIC あるいは、READS SQL DATA、NO SQL のいずれかの特性を持った関数での宣言が必要になる。この値を 1 にすると、MySQL は関数に対して、このような制限はなくなる。詳細は 項17.4. 「ストアドルーチンとトリガのバイナリログ」 を参照のこと。

  • log_error

    エラー ログの位置。

  • log_output

    一般クエリ ログとスロー クエリ ログの出力先。TABLE (テーブルへのログ)、FILE (ファイルへのログ)、NONE (テーブルまたはファイルにログしない。) などを、複数の単語をカンマ区切りリストにできる。デフォルトは TABLE。NONE は、どの指定子よりも優先となる。つまり、NONE の場合、ログ エントリはログを有効化していても書き込みがない。ログを有効にしていなければ、log_output が NONE でなくても、ログできない。詳細は 項4.11.1. 「一般クエリとスロー クエリのログ出力先の選択」 を参照のこと。(MySQL 5.1.6 から導入)

  • log_queries_not_using_indexes

    インデックスしていないクエリをスロー クエリ ログに記録しているかどうか (を指す)。詳細は 項4.11.5. 「スロー クエリ ログ」 を参照のこと。(MySQL 5.1.11 から導入)

  • log_slave_updates

    スレーブ サーバがマスタ サーバから受け取った更新を、スレーブ サーバ自身のバイナリ ログに記録するかどうかを指す。この効果を得る (スレーブでバイナリ ログする) には、スレーブ上でバイナリ ログを有効にしておく必要がある。項5.1.3. 「レプリケーションのオプションと変数」 を参照のこと。

  • log_slow_queries

    スロー クエリのログするかどうか (を指す)。「Slow」 は long_query_time の値で決定する。項4.11.5. 「スロー クエリ ログ」 を参照のこと。

  • log_warnings

    警告メッセージに追加情報を表示するかどうか (を指す)。デフォルトでは有効 (1) 。0 にすると無効になる。この値が1より小さい場合、接続を中断した情報をエラーログに出力できない。

  • long_query_time

    クエリでこの値(秒単位)より時間がかかると、Slow_queries カウンタが増える (increment)。--log-slow-queries オプションを使用している場合、クエリはスロー クエリ ログ ファイルでの記録になる。この値は、CPU 時間ではなく、リアル タイムである。したがって、低負荷のシステムではしきい値 (基準値) より下のクエリが、高負荷のシステムでしきい値より上になる場合がある。下限値は 1 で、デフォルトは 10。項4.11.5. 「スロー クエリ ログ」 を参照のこと。

  • low_priority_updates

    1 に設定すると、対象テーブルに影響する SELECT または LOCK TABLE READ を完了するまで、INSERT、UPDATE、DELETE、LOCK TABLE WRITE などのステートメントを待機させる。この変数の旧称は sql_low_priority_updates 。

  • lower_case_file_system

    データ ディレクトリのファイルシステムの大小文字区別を示す。OFF の場合は、ファイル名でこの区別をしていることを意味し、ON の場合は大小文字の区別をしていないことを意味する。

  • lower_case_table_names

    この値が 1 の場合、テーブル名を小文字変換で格納している。つまりテーブル名には大小文字の区別がないことを示す。この値が 2 の場合、テーブル名を入力通りに格納するが、小文字の区別をする。このオプションはデータベース名とテーブルのエイリアスで適用。項8.2.2. 「識別子の大文字/小文字区別」 を参照のこと。

    InnoDB テーブルを使用する場合、名前を強制的に小文字に変換するには、すべてのプラットフォームでこの値を 1 に設定する。

    たとえば、Windows または Mac OS などで、システムで MySQL を実行していて、ファイル名に大小文字の区別がない場合は、この値を 0 に しない こと。起動時などでこの値をまだ設定していない状態で、かつデータ ディレクトリのファイルシステムで大小文字の区別をしていないときには、MySQL が自動的に lower_case_table_names を 2 に設定する。

  • max_allowed_packet

    1 パケットの最大サイズ。または生成/中間文字列。

    パケット メッセージ バッファは net_buffer_length バイトで初期化するが、必要に応じて max_allowed_packet バイトまで大きくできる。デフォルト値は小さいが、大きな(不正)パケットを受けないように設定している。

    大きな BLOB カラムを使用している場合には、この値を大きくする必要がある。使用する最大の BLOB と同じ大きさにする。max_allowed_packet のプロトコル制限は 1GB。

  • max_binlog_cache_size

    複数ステートメントのトランザクションでこれより多くのメモリが必要になると、Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage というエラーが発生する。下限値は 4096 で、最大 (デフォルト) は 4 GB 。

  • max_binlog_size

    バイナリ ログ ファイルへの書き込みがログ ファイル サイズと干渉し、この値を超える場合、バイナリ ログをローテートする。(現行 ファイルを閉じて、次のファイルを開ける。) 設定可能値は、4096 バイト以上 1 GB (デフォルト) 以下。

    注意 : トランザクションではバイナリ ログへの書き込みを 1 つのまとまりとして処理するため、トランザクション自体を複数のバイナリ ログに分割することは絶対的にない。したがって、大きなトランザクションがある場合、バイナリログの max_binlog_size が大きくなることがある。

    max_relay_log_size が 0 の場合、max_binlog_size の値がリレー ログにも適用となる。

  • max_connect_errors

    ホストからの接続中断回数がこの値を越えた場合、それ以降、そのホストからの接続をブロックする。ブロックを解除するには、FLUSH HOSTS コマンドを使用する。

  • max_connections

    MySQL への最大同時接続数。MySQL 5.1.15 以降のデフォルトは150 (以前は 100)。詳細は 項B.1.2.6. 「Too many connections」 を参照のこと。

    MySQL Enterprise.  警告:同時最大接続数を増加することには危険が伴います。MySQL Network Monitoring and Advisory Service では、max_connections に関するアドバイスを提供しています。詳細は http://www-jp.mysql.com/products/enterprise/advisors.html () で参照してください。

    この値を増やすと、mysqld のファイルの記述子の数を増やすこととなる。ファイル記述子の制限に関するコメントは 項6.4.8. 「MySQL でのテーブルのオープンとクローズの方法」 を参照のこと。

  • max_delayed_threads

    INSERT DELAYED ステートメント処理に、スレッドがこの数に達すると処理しない。つまり、スレッドの最大数である。使用中の INSERT DELAYED スレッド後に、データを新規テーブルに挿入すると、その行は DELAYED 属性を指定していない行になる。値を 0 に設定すると、MySQL は DELAYED を処理するスレッドを 作成しなくなる。事実上、DELAYED を完全に無効にする。

  • max_error_count

    SHOW ERRORS や SHOW WARNINGS で表示するエラーや警告の最大数。

  • max_heap_table_size

    MEMORY 型テーブルの最大メモリ サイズを設定する(ヒープ)。この変数の値で MEMORY テーブルの MAX_ROWS 値を計算する。この変数の設定は、既存の MEMORY テーブルには影響しない。ただし、CREATE TABLE などのステートメントで再生成したり、 ALTER TABLE または TRUNCATE TABLE で変更した場合は影響する。

    MySQL Enterprise.  MySQL Network Monitoring and Advisory Service では、max_heap_table_size の最適設定に関するアドバイス (推奨) を提供しています。詳細は http://www-jp.mysql.com/products/enterprise/advisors.html を参照してください。

  • max_insert_delayed_threads

    max_delayed_threads に対するシノニム。

  • max_join_size

    max_join_size の値でクエリを制限する。長い時間をかけて百万行を返すような WHERE なしの結合を作成するようなユーザをいる場合にこの変数を設定すると、サーバへの無駄な負荷を軽減させることができる。(max_join_size 値を超える行数のレコードを読み取ろうとするとエラーになる。) SELECT ステートメントで、レコードの組み合わせ調べ (単一テーブルまたは複数テーブルに対するステートメント) がこの値を超える場合 や、またはこの値を超えるディスクシークの実行を許可しない。 この値を設定すると、キーの使用が不適切で長時間かかるような SELECT ステートメントを捕捉できる。

    この変数を DEFAULT 以外の値で設定すると、SQL_BIG_SELECTS の値が 0 にリセットになる。SQL_BIG_SELECTS 値を再び設定すると、max_join_size 変数は無視の対象になる。

    クエリ結果がクエリ キャッシュにある場合は、結果のサイズ チェックすることはなく、これは結果がすでに計算済みで、それをクライアントに送信することがサーバの負荷にならないためである。

    この変数の旧称は sql_max_join_size である。

  • max_length_for_sort_data

    使用する filesort アルゴリズムを決定するインデックス値の最大サイズ。項6.2.12. 「ORDER BY最適化」 を参照のこと。.

  • max_prepared_stmt_count

    サーバの Prepared ステートメントの合計数の最大値。この値で制限する。リクエスト応答を大量に発生させることで、サーバの応答機能の帯域を使い切るなど、いわゆる DoS攻撃 (denial-of-service attacks) を受ける可能性がある環境で使用する。デフォルト値は 16382。許容値は 0 から 100 万。この値が実行中の Prepared ステートメントの数より低い場合は、既存ステートメントが影響を受けることはなく、そのまま使用できるが、新規のステートメントに関しては、この制限値よりも現行数を低減するまで、準備できない。(MySQL 5.1.10 からの導入)

  • max_relay_log_size

    レプリケーション スレーブがリレー ログに書き込みをすると、カレント ログ ファイル サイズがこの変数値を越える原因になり、スレーブはリレー ログをローテートする。 (現行ファイルを閉じ、次のファイルを開ける。) max_relay_log_size を 0 とした場合、サーバはバイナリ ログとリレー ログの両方に max_binlog_size を使用する。max_relay_log_size が 0 より大きい場合、リレー ログのサイズを抑制し、両ログに異なるサイズを持たせることが可能になる。max_relay_log_size は 4096 バイトから 1GB 以内で設定するか、または 0 に設定する。デフォルト値は 0 。項5.5.1. 「レプリケーション実装の詳細」 を参照のこと。

  • max_seeks_for_key

    キーでレコード検索の最大回数を制限する。キー スキャンでテーブルからレコードを検索するときに、MySQL オプティマイザでキーの基数とは関係なく (無視して)、キー検索の回数をこの指定値までとする。項12.5.4.17. 「SHOW INDEX 構文」 を参照のこと。この値を低く(100 くらいに)設定すると、MySQL でののスキャンがテーブルではなくキーを優先するようになる。

  • max_sort_length

    BLOB 値または TEXT 値をソートするときに使用するバイト数。各値の最初の max_sort_length バイトだけを使用し、残りは無視になる。

  • max_sp_recursion_depth

    ストアド プロシージャが呼び出す回数。このオプションのデフォルト値は 0 で、ストアド プロシージャの再帰を完全に無効にする。

    この変数はグローバル、かつセッションごとの設定が可能。

  • max_tmp_tables

    1 つのクライアントが同時に開けたままにできるテンポラリ テーブルの最大数。(このオプションはまだ利用できない。)

  • max_user_connections

    単一ユーザ (MySQL アカウント) が同時に接続できる最大数。値 0 は 「制限なし」 という意味。

    この値はグローバル スコープとセッション スコープ (読み込みオンリー) の両方を持つ。 セッション値は通常グローバル値と同じ値。ただし、 セッション ユーザが 0 以外の MAX_USER_CONNECTIONS 値を持ってる場合には、このセッション値がアカウント制限にも反映する。

  • max_write_lock_count

    この回数の書き込みロックをした後に、読み取りロックを許可する。(ロックが必要なほど大量のテーブル書き込みがある場合など)

  • multi_range_count

    テーブル ハンドラへ一括送信できる最大許容範囲 (範囲選択時)。デフォルトは256。複数の値域をハンドラへ 1回で送れると、一定の選択において劇的なパフォーマンス向上になる。これは NDB Cluster のテーブル ハンドラで非常に有用で、値域要求をすべてのノードへ送るときに役に立つ。要求のバッチを一度に送ることは、通信コストを大幅節減に繋がる。

  • myisam_data_pointer_size

    CREATE TABLE 時に、MAX_ROWS オプションを指定していないときの MyISAM テーブル内部のポインタ サイズを指定する。(テーブルの最大物理サイズの決定。) 変数は 2 以上 7 以下である必要がる。デフォルトでは 6。項B.1.2.11. 「The table is full」 を参照のこと。

  • myisam_max_extra_sort_file_size (廃止)

    ノート:この変数は MySQL 5.1 ではサポートしていない。詳細は MySQL 5.0 Reference Manual を参照のこと。

  • myisam_max_sort_file_size

    REPAIR TABLE、ALTER TABLE、LOAD DATA INFILEなどを使用して MyISAM インデックスを再生成するときに、MySQL が使用できるテンポラリ ファイルの最大サイズ。ファイル サイズがこれより大きい場合、インデックスはキー キャッシュでの作成になる(時間がかかる)。値の単位はバイト。

    デフォルトでは 2GB 。MyISAM インデックス ファイルがこのサイズを越え、ディスク容量が要るようになるときには、この値を大きくするとパフォーマンス向上になる。

  • myisam_recover_options

    --myisam-recover オプションの値。項4.2.2. 「コマンド オプション」 を参照のこと。

  • myisam_repair_threads

    この値が 1 より大きい場合、Repair by sorting の修復プロセスでの MyISAM テーブル インデックスは並列での作成になる。インデックス毎のスレッド生成になる。

    ノート:複数スレッドの修復は ベータ段階 です。

  • myisam_sort_buffer_size

    REPAIR TABLE 文実行時に MyISAM テーブルのインデックスをソートする場合、または CREATE INDEX や ALTER TABLE などでインデックスを作成する場合に、割り当てるバッファのサイズ。

  • myisam_stats_method

    MyISAM テーブルでインデックス分布統計を集計するとき、サーバの NULL 値の扱いを決定する。この変数の値は nulls_equal または nulls_unequal のどちらか。nulls_equal の場合、すべての NULL インデックス値を同等として扱い、 NULL 値の数とサイズが同等の単値のグループを生成する。nulls_unequal の場合、NULL の値同士を同等とは扱わず、それぞれの NULL で、サイズを 1 とする独特のグループを生成する。

    この方法で、クエリの実行に対して、オプティマイザがインデックスを選択するときに影響を受けるテーブルの統計を取る。詳細は 項6.4.7. 「MyISAMインデックス統計コレクション」 を参照のこと。

  • myisam_use_mmap

    MyISAM テーブルの読み書き込みで使用するメモリ マッピング。(MySQL 5.1.4 での追加)

  • multi_read_range

    範囲指定の SELECT 文を発行するときに、ストレージ エンジンに送ることができる範囲の最大値を指定する。デフォルトでは 256。 複数の範囲指定をストレージ エンジンに送ることは 特定の SELECT 文に対して、特に NDBCLUSTER において、大幅にパフォーマンスを改善する。

  • named_pipe

    サーバが名前付きパイプ (named pipes) を経由した接続をサポートするかどうか。Windows 専用。

  • ndb_autoincrement_prefetch_sz

    auto_increment カラムにおけるギャップの確率 (probability) を決定する。1 にセットした場合、これを最小限に抑える。最適化を目的として値を大きくする設定すると、— が挿入を高速化するが、バッチ挿入に使用する自動インクリメントの数が減る可能性がある。デフォルトは 32。下限値は 1.

  • ndb_cache_check_time

    NDB のクエリ キャッシュをチェックする前に待機するミリ秒 (msec)。この値を 0 (デフォルト) に設定すると、NDB クエリ キャッシュでクエリ毎のバリデーションを行う。

    推奨最大値は 1000 で、クエリ キャッシュが一秒間に一度のチェック対象になることを意味する。値が大きくなるということは、NDB のクエリ キャッシュのチェック回数が減り、別のmysqld での更新が原因で、バリデーションが無効化することを意味する。この値を 2000 以上に設定しないこと。

  • ndb_extra_logging

    デバッグやトラブルシューティング用に追加の NDB ロギングを行うには、ゼロではない値を設定する。デフォルトは 0。

    (MySQL 5.1.6 での追加)

  • ndb_force_send

    NDB へ迅速にバッファを送るよう命令する。他のスレッドを待機しない。デフォルトは ON 。

  • ndb_index_stat_cache_entries

    統計の精度を設定する。開始キーと終了キーの数を決め、統計メモリ キャッシュに格納する。ゼロはキャッシュしていないことを示し、その場合には、データ ノードが直接的にクエリになる。デフォルトは 32.

  • ndb_index_stat_enable

    NDBインデックス統計。クエリの最適化。デフォルトでは ON。

  • ndb_index_stat_update_freq

    統計キャッシュの代わりにデータ ノードにクエリを行うかを示す回数。たとえば、値が 20 の場合、クエリ 20 毎に、データ ノードを渡すという意味。

  • ndb_report_thresh_binlog_epoch_slip

    binlog ステータスをレポートするまでに、遅れるエポック数の閾値。たとえば、値が 3 (デフォルト) であった場合、ストレージ ノードから受けたエポックと 3 以上の binlog に適用したエポックの数が異なるときに、ステータス メッセージをクラスタ ログする。

  • ndb_report_thresh_binlog_mem_usage

    binlog ステータスをレポートするまで残っている空きメモリのパーセンテージの閾値。たとえば、値が 10 (デフォルト) であった場合、データ ノードから受ける binlog データに使うメモリが 10% 降下するという意味。そしてステータス メッセージをクラスタ ログにする。

  • ndb_use_copying_alter_table

    NDB で、オンラインの ALTER TABLE 操作で、問題が発生したテーブルをコピーするために使用する。デフォルトは OFF になっている。

    (MySQL 5.1.12 での追加)

  • ndb_use_exact_count

    SELECT COUNT(*) クエリの高速化を図るときに、レコードの回数を適用するよう NDB に命令する。デフォルトでは ON になっている。全体的にクエリを速度化するには、これを無効にする。つまり、ndb_use_exact_count を OFF にする。

  • ndb_use_transactions

    NDB トランザクションを OFF に設定することで無効にできるが、これは極力やらない。デフォルトでは ON になっている。

  • net_buffer_length

    クライアント スレッドが接続バッファと結果バッファに関連付けられている。両者は net_buffer_length で与えられたサイズで始まるが、必要に応じて、max_allowed_packet バイトまで劇的に拡大できる。結果バッファは SQL 文毎に net_buffer_length まで縮小する。

    この値はできるだけ変更しない。ただし、メモリが非常に限られている環境において、この値をクライアントから送信されるステートメントの長さに合わせて設定できる。ステートメントがこの長さを越えた場合、接続バッファは自動的に拡大する。net_buffer_length の最大値は 1MB に設定できる。

  • net_read_timeout

    読み込みを中断するまでデータ追加を待機する秒数。タイムアウトは TCP/IP 接続にだけ適用する。これは Unix のソケット ファイル、または名前付きパイプ、共有メモリなどを経由していない接続のことである。サーバがクライアントからの読み込みを行うとき、net_read_timeout のタイムアウト値が中断するタイミングを制御する。書き込みを行うときは、net_write_timeout のタイムアウト値が中断するタイミングを制御する。slave_net_timeout のセクションも参照のこと。

  • net_retry_count

    通信ポートでの読み込みが中断した場合に、実行できる再試行回数。FreeBSD でこの値を大きくすると、内部中断をすべてのスレッドに通知する。

  • net_write_timeout

    書き込みを中断するまで、ブロック書き込みを待機する秒数。タイムアウトは TCP/IP 接続にだけ適用する。これは Unix のソケット ファイル、または名前付きパイプ、共有メモリなどを経由していない接続のことである。net_read_timeout も参照のこと。

  • new

    MySQL 4.0 において、MySQL 4.1と同様の動作 (下位互換性)をするかどうか (を指す)。MySQL 5.1 では、この値は常に OFF。

  • old_passwords

    サーバが MySQL 4.1より前で使用しているパスワード形式を採用するかどうか (を指す)。項B.1.2.3. 「Client does not support authentication protocol」 を参照のこと。

  • one_shot

    これは変数ではない。しかし、特定の変数を設定するときに使用できる。詳細は 項12.5.3. 「SET 構文」 を参照のこと。

  • open_files_limit

    mysqld が開けるオペレーティング システムのファイル数。これはシステムで指定されている実際の値であり、起動時のパラメータとして --open-files-limit オプションで mysqld または mysqld_safe に指定したものとは異なる場合がある。MySQL がオープンファイル数を変更できないシステムでは 0 になる。

  • optimizer_prune_level

    ヒューリスティックス (経験則) を採用したクエリ最適化を制御し、オプティマイザの検索スペースからあまり見込みのない、部分的なプランをパージ (削除) する。値を 0 にすると、ヒューリスティックスを無効化し、オプティマイザは完全な検索を行う。値を 1 にすると、オプティマイザは中間プラン (intermediate plans) で検索したレコード数に基づいてプランを削除する。

  • optimizer_search_depth

    クエリ オプティマイザが実行する検索深さの最大値を指定する。クエリ結果の関係数が大きい値の場合は、プランよりも良いということを示すが、クエリの実行プラン生成に時間がかかる。関係数が小さい値の場合は、より速い実行プランを返すが、結果プランが最適であるとは言えない。値を 0 した場合、システムは自動的に妥当な値を計算する。値をクエリに使用しているテーブルの最大値に + 2 した場合は、オプティマイザが検索を実行するときに、MySQL 5.0.0 (と前バージョン) で使用したアルゴリズムに切り替える。

  • pid_file

    プロセス ID (PID) ファイルのパス。--pid-file オプションで設定する。

  • plugin_dir

    プラグイン ディレクトリのパス。(MySQL 5.1.2 での追加)

  • port

    mysqldサーバが利用するTCP/IPポート番号。--port オプションで設定する。

  • preload_buffer_size

    インデックスをプレロードするときに割り当てるバッファ サイズ。

  • prepared_stmt_count

    準備されたステートメント (prepared statements) の現在値。max_prepared_stmt_count システム変数で与えるステートメントの最大値。MySQL 5.1.10 からの追加で、MySQL 5.1.14 では、 Prepared_stmt_count グローバル ステータス変数に変換していた。

  • protocol_version

    MySQL サーバが使うクライアント/サーバ間のプロトコル バージョン。

  • query_alloc_block_size

    クエリの解析や実行で生成するオブジェクトに割り当てるメモリ ブロックの割り当てサイズ。メモリのフラグメントに問題がある場合、これを少し大きくすると改善できる可能性がある。

  • query_cache_limit

    この値より大きい結果はキャッシュしない。デフォルトは 1MB。

  • query_cache_min_res_unit

    クエリ キャッシュで割り当てるブロックの最小サイズ (バイト単位)。デフォルトは 4096(4KB)。この変数を利用した効果については、項4.13.3. 「クエリ キャッシュの設定」 を参照のこと。

  • query_cache_size

    古いクエリの結果の保存用に割り当てたメモリ (クエリ キャッシュで確保するメモリ)。 この値を 0 (デフォルト) にすると、クエリ キャッシュは無効化する。許容値は 1024 の倍数。値はすべて、近似の倍数で端数を切り捨てる。ノート: query_cache_size バイトのメモリは、query_cache_type が 0 で設定してあっても、割り当ての対象となる。詳細は 項4.13.3. 「クエリ キャッシュの設定」 を参照のこと。

  • query_cache_type

    クエリ キャッシュを行う条件を指定する。GLOBAL 値に設定すると、これ以降に接続するすべてのクライアントの条件が反映する。それぞれのクライアントで SESSION 値を設定することができ、これはマシン レベルでのクエリ キャッシュに影響する。次のテーブルは数値を示す。

    オプション 説明
    0 または OFF キャッシュを使用しない。注意:これはクエリ キャッシュのバッファの割当を解除しない。解除するには query_cache_size を 0 にセットする。
    1 または ON SELECT SQL_NO_CACHE を除くすべての結果をキャッシュする。
    2 または DEMAND SELECT SQL_CACHE で始まるクエリだけをキャッシュする。

    この変数のデフォルトは ON。

  • query_cache_wlock_invalidate

    通常、クライアントが MyISAM テーブルの WRITE ロックを獲得する場合、別のクライアントはクエリの結果がキャッシュ内にあるときは、そのテーブルへのクエリ発行をブロックしない。この値を 1 にした場合、テーブルに対する WRITE ロックを得ることとなり、そのテーブルに対するクエリ キャッシュのクエリは無効化する。これにより、テーブルへのアクセスを試みるクライアントに対して、ロック有効中は待機するよう抑制できる。

  • query_prealloc_size

    クエリの解析および実行に使用する永続バッファ サイズ。このバッファはクエリ間でも開放しない。頻繁に複雑なクエリを発行する場合、query_prealloc_sizeの値を大きくして、クエリ実行時のメモリ割り当て回数を減らすことになるため、パフォーマンスを改善できる可能性がある。

  • range_alloc_block_size

    範囲の最適化で割り当てるブロックのサイズ。

  • read_buffer_size

    順次スキャン (全件) を行うときに各スレッドが割り当てるバッファ サイズ。バイトで指定する。このスキャンを何度も行う場合には、この値を大きくする。デフォルトは 131072。

  • read_only

    レプリケーション スレーブ サーバで、この値を ON に設定すると、サーバが SUPER 権限を持つユーザ以外からの更新ができない。スレーブ サーバにおいては、マスタ サーバからの更新だけを許容し、クライアントからの要求を無視するようなる。この動作は TEMPORARY テーブルには使えない。

    read_only は GLOBAL 変数として存在するために、SUPER 権限が必要な値への変更になる。マスタ サーバで read_only に変更すると、スレーブ サーバで複製できなくなる。この値は、マスタの設定とは独立しているスレーブ サーバで行う。

    MySQL 5.1.15 以降は、次のことに注意する。

    • read_only を有効にしようとするときに、明示的なロック (LOCK TABLESなどから) がある場合、または未処理のトランザクションがある場合は、エラーになる。

    • 別のクライアントに明示的なテーブル ブロックがある場合、または未処理のトランザクションがある場合に、read_only を有効にすると、ロックをリリースし、トランザクションが完了するまでブロックする。read_only にする試みが進行中である場合、テーブル ロックに対する別のクライアントからの要求、またはトランザクションを開始することへの要求を、read_only の設定を完了するまで、ブロックする。

    • read_only はグローバル読み込みブロック (FLUSH TABLES WITH READ LOCK などから) を保持している間に有効化できる。これはテーブル ロックを巻き込まないためである。

  • read_rnd_buffer_size

    ソートしたレコードを読み出すときのバッファサイズを指定する。ディスク検索を行わないように、レコードをこのバッファから読み取る。この値を大きく設定すると、ORDER BY のパフォーマンスを大幅に向上できる。しかし、これはスレッド固有の変数であるため、これをグローバル値を大きな値で設定すべきではない。したがって、大量のクエリを実行するときにだけ、クライアント内のセッション値を変更する。

  • relay_log_purge

    リレー ログ ファイルが不必要になったときの自動削除フラグを設定する。デフォルトは 1 (ON)。

  • rpl_recovery_rank

    この変数は使用していない。

  • secure_auth

    --secure-auth オプションを付けて MySQL サーバを起動する場合、MySQL サーバは古い形式 (4.1 より前) のパスワードを認証しない。 このときの値は ON (ブロック)。接続をブロックしないようにするには、OFF にする。

    これによりネットワーク セキュリティが不安定な場合など、古い形式を採用しているパスワードでの接続を許可しないようにするには、このオプションを有効にする。

    このオプションを有効にしたときに、権限テーブルが 4.1 よりも前の形式である場合には、起動時にサーバ エラーが発生する。 項B.1.2.3. 「Client does not support authentication protocol」 を参照のこと。

  • server_id

    サーバ ID 。--server-id オプションで設定する。これはレプリケーションを行うときなどに、マスタとスレーブのサーバ間でお互いを一意的に認識させるために使用する。

  • shared_memory

    共有メモリに付ける識別子を指定する。Windows 専用。

  • shared_memory_base_name

    共有メモリ接続で使用する共有メモリの名前。 このオプションはWindowsで有効。複数の MySQL インスタンス (サーバ) を一台のマシンで使用している場合に便利。デフォルト名は MYSQL。この名前は大文字と小文字を区別する。

  • skip_external_locking

    OFF : mysqld が外部ロックを使用している場合。ON : 外部ロックが無効の場合。

  • skip_networking

    ON : サーバがローカル接続のみを許可する場合 (非 TCP/IP)。Unix では、ローカル接続に Unix ソケット ファイルを使用。Windows では、名前付きパイプまたは共有メモリを使用。NetWare では、TCP/IP 接続をサポートしている場合のみ。そのため、この変数を ON に設定してはいけない。この変数を ON にするには、--skip-networking オプションを使用する。

  • skip_show_database

    SHOW DATABASES 権限を持たずして SHOW DATABASES を使用するユーザにデータベースを表示しない。これは、他人のユーザ権限のデータベースを表示しないため、セキュリティの向上に役立つ。この効果は SHOW DATABASES 権限の設定オプションに依存する。値を ON にした場合、SHOW DATABASES ステートメントは SHOW DATABASES 権限を持つユーザにだけが使用でき、ステートメントにはすべてのデータベース名を表示する。値を OFF にした場合、SHOW DATABASES はすべてのユーザに対してこのステートメントの発行を許可するが、ユーザがSHOW DATABASES などの権限を持っているデータベースだけの表示になる。

  • slave_compressed_protocol

    マスタとスレーブの両方が圧縮プロトコルをサポートしているかどうか (を指す)。

  • slave_load_tmpdir

    スレーブサーバがレプリケーション データ ( LOAD DATA INFILE ステートメント) を読み込むときに 使用するテンポラリ ディレクトリのパスを指定する。

  • slave_net_timeout

    読み込みを中断するまで、マスタ/スレーブ接続からのデータを待機する秒数。タイムアウトは TCP/IP 接続にだけ適用。Unix ソケット ファイルを介した接続や、名前付きパイプ、共有メモリには適用しない。

  • slave_skip_errors

    スレーブがスキップ (無視) するレプリケーション エラー。

  • slave_transaction_retries

    InnoDB デッドロック、InnoDB の innodb_lock_wait_timeout、NDBCluster の TransactionDeadlockDetectionTimeout または TransactionInactiveTimeout を越えた場合、レプリケーション スレーブの SQL スレッドはトランザクションの実行に失敗する。そのときに、エラーで停止する前に、自動試行する回数のことを slave_transaction_retries 回と定義する。デフォルトでは 10 回。

  • slow_launch_time

    スレッドの作成にこの値(秒単位)より時間がかかると、サーバが Slow_launch_threads ステータス変数 (カウンタ) をインクリメントする。

  • slow_query_log

    スロー クエリ ログが有効になっているかどうか (を指す)。値が 0 (または OFF) の場合、ログしない。値が 1 (または ON) の場合、ログする。デフォルトは --log-slow-queries オプションを設定しているかどうかによる。ログ出力先は log_output システム変数で制御する。値を NONE にした場合、ログできるようにしていても、ログ エントリを書き込まない。slow_query_log は MySQL 5.1.12 からの導入。

  • slow_query_log_file

    スロー クエリ ログ ファイルの名前。デフォルトは host_name-slow.log 。初期値は --log-slow-queries オプションで変更可能。(MySQL 5.1.12 での追加)

  • socket

    Unix 環境で、ローカル接続に使用するソケット ファイル パス。デフォルトは /tmp/mysql.sock になっている。配布用の形式によっては、ディレクトリが異なる場合がある。たとえば、 RPM の /var/lib/mysql など。

    Windows環境では、ローカル接続に使用する名前付きパイプ名のこと。デフォルトは MySQL 。文字の大小区別なし。

  • sort_buffer_size

    ソートを実行する必要のあるスレッドがこのサイズのバッファを割り当てる。ORDER BY または GROUP BY などの操作を速くするには、この値を大きくする。 項B.1.4.4. 「Where MySQL Stores Temporary Files」 を参照のこと。

  • sql_mode

    現在のSQLモード。この値は動的に変更することが可能。項4.2.6. 「SQL モード」 を参照のこと。

  • sql_slave_skip_counter

    スレーブ サーバが無視するマスタからのイベント数。項12.6.2.6. 「SET GLOBAL SQL_SLAVE_SKIP_COUNTER 構文」 を参照のこと。

  • ssl_ca

    SSL CA 証明をリストしたファイルのパス。(MySQL 5.1.11 での追加)

  • ssl_capath

    SSL CA 証明書 (PEM形式) があるディレクトリへのパス。(MySQL 5.1.11 での追加)

  • ssl_cert

    セキュリティ上、安全に接続を確立するために使用する SSL 証明書。(MySQL 5.1.11 での追加)

  • ssl_cipher

    SSL 暗号化に使用するサイファ (暗号鍵) のリスト。サイファ リストは openssl ciphers コマンドと同形式。(MySQL 5.1.11 での追加)

  • ssl_key

    セキュリティ上、安全に接続を確立するために使用する SSL キー ファイル名。(MySQL 5.1.11 での追加)

  • storage_engine

    デフォルトのストレージ エンジン (テーブル タイプ)。サーバ起動時にストレージ エンジンを設定するには、--default-storage-engine オプションを使用する。項4.2.2. 「コマンド オプション」 を参照のこと。

  • sync_binlog

    この値が正数の場合、MySQL サーバはバイナリ ログへこの sync_binlog 回書き込みを行い、それごとにディスクへ同期する (fdatasync() を使用)。オートコミットモードでは、一つの SQL 文を発行毎に、ログ書き込みとなる。それ以外のモードでは、トランザクションごとの書き込みになる。デフォルト値は 0 で、ディスクへの同期は行わないことを示す。値を 1 にすると、最も安全な設定となる。これはクラッシュした場合などに失うものが、1 ステートメントあるいは1 トランザクションに留まるためである。しかし、これはパフォーマンスを遅くするため、対応策としては、同期を高速化するために、バッテリ バックアップ式キャッシュをディクスに持たせるなどする。

    sync_binlog 値の 0 (デフォルト) は、追加フラッシュは行わないことを示す。これはフラッシュが OS に依存する。

  • sync_frm

    値を 1 とした場合に、テンポラリ以外のテーブルを作成すると、.frm ファイルを ディスクへ同期する (fdatasync() を使用)。これは処理スピードを遅くするが、クラッシュに対して安全である。デフォルトは 1。

  • system_time_zone

    サーバ システムのタイム ゾーン。サーバが起動するときは、マシンのデフォルトタイムゾーンを継承する。これは サーバを起動したユーザアカウントの環境やスタートアップ スクリプトのオプションなどで変更可能。値は system_time_zone を設定する。通常、タイム ゾーンは TZ 環境変数で指定する。または mysqld_safe スクリプトでの --timezone オプションでも指定可能。

    system_time_zone と time_zone は別物である。両者の値は同値であることもあるが、後者はクライアント接続毎にタイムゾーンを初期化する変数である。項4.10.8. 「MySQL サーバのタイム ゾーン サポート」 を参照のこと。

  • table_cache

    MySQL 5.1.3 前まで、table_open_cache と呼ばれていた。 MySQL 5.1.3 以降は table_open_cache を使用する。

  • table_definition_cache

    定義キャッシュに保存できるテーブル定義数。テーブル数が多い場合に、テーブルを開けるスピードを速めるために、大きなテーブル定義キャッシュを作成できる。通常のテーブル キャッシュと比較すると、テーブル定義キャッシュが必要とするスペースが小さく、ファイル記述子を使用しない。(MySQL 5.1.3 以降)

  • table_lock_wait_timeout

    テーブル レベル ロックで待機する時間 (秒) を指定する。デフォルトのタイムアウトは 50 秒。タイムアウトは接続でカーソルを開けるとアクティブになる。SUPER 権限を保持していれば、ランタイムにグローバル設定可能。

  • table_open_cache

    すべてのスレッドに対するオープン テーブルの数 (キャッシュする最大テーブル数)。この値を大きくするということは、mysqld が要求するファイル記述子の数を増やすということ。Opened_tables ステータス変数をチェックしてテーブル キャッシュを増やす必要があるかどうかを調べる。項4.2.5. 「ステータス変数」 を参照のこと。Opened_tables の値が大きく、FLUSH TABLES を頻繁に行わない場合 (単にテーブルの開閉を強制するだけ)、table_open_cache 変数の値を増やす必要がある。テーブル キャッシュに関する詳細は 項6.4.8. 「MySQL でのテーブルのオープンとクローズの方法」 を参照のこと。MySQL 5.1.3 前には、table_cache と呼ばれていた。

  • table_type

    storage_engine のシノニム。MySQL 5.1 では storage_engine を使用。MySQL 5.2 では、table_type は削除されている。

  • thread_cache_size

    再利用のためにキャッシュ可能なスレッド数。クライアントが接続を切断したときに、以前のスレッド数が thread_cache_size 以下であれば、そのクライアントのスレッドはキャッシュに入る。新しいスレッドはすべてキャッシュから取り込まれ、キャッシュが空の場合のみ、新しいスレッドが作成される。新しい接続が多く発生する場合、この変数を大きくすることによりパフォーマンスを向上できる (スレッド実装が既に理想的な状態であれば、それほどパフォーマンスは向上しない)。Connections および Threads_created などのステータス変数の差異を調べると、スレッド キャッシュの効率性を確認できる。詳細は 項4.2.5. 「ステータス変数」 を参照のこと。

  • thread_concurrency

    Solaris では、mysqld がこの値を伴う thr_setconcurrency() を呼び出す。アプリケーションに、同時に実行する理想的なスレッド数を提供する。

  • thread_stack

    各スレッドのスタック サイズ。crash-me で検出する制限の多くは、この値に依存する。通常の操作ではデフォルト (192 KB) で十分である。項6.1.4. 「MySQL ベンチマークスィート」 を参照のこと。

  • time_format

    この変数は実装していない。

  • time_zone

    現在のタイムゾーン。この変数はクライアント接続毎にタイム ゾーンを初期化する。デオフォルトは 'SYSTEM' 、つまり system_time_zone「の値を使う」 ということ。サーバ起動時に --default-time-zone オプションで明示的に指定できる。項4.10.8. 「MySQL サーバのタイム ゾーン サポート」 を参照のこと。

  • timed_mutexes

    InnoDB ミューテックスをカウントしているかどうかを制御する。この値を 0 または OFF (デフォルト) に設定すると、ミューテックス カウントは無効になる。この値を 1 または ON に設定すると、ミューテックス カウントは有効になる。このカウントを有効にすると、SHOW ENGINE INNODB MUTEX からの出力の os_wait_times 値は、OS が待機した回数 (ms) を示す。それ以外では、この値は 0 である。

  • tmp_table_size

    メモリ内のテンポラリ テーブルの最大サイズ。実際の限度は max_heap_table_size や tmp_table_size の値より小さい値になる。メモリ内テンポラリ テーブルが制限値を超えると、MySQL はこれを自動的にディスク内の MyISAM テーブルにする。高度な GROUP BY クエリを展開する場合にメモリが沢山あるときは、 tmp_table_size (必要に応じて、max_heap_table_size も) の値を増やす。

  • tmpdir

    テンポラリ ファイルとテンポラリ テーブルのディレクトリ。この変数はラウンド ロビン式の複数のパスのリストをセットするときに使用する。Unix で、パスはコロン (‘:’) で区切り、Windows、NetWare、OS/2 などではセミコロン (‘;’) で区切る。

    複数ディレクトリ機能は、物理ディスク間で負荷を分担するときに使用する。MySQL サーバが レプリケーション スレーブである場合、tmpdir を使用して、メモリ ベースのシステムファイルまたはサーバ ホスト (OS) 再起動時に内容が消去されるディレクトリを指定しない。これは、レプリケーション スレーブが、マシンがリブートした場合や LOAD DATA INFILE 文の処理中であった場合などに対応するために、テンポラリのテーブルやファイルを必要とするため。もしこのディレクトリからテンポラリ ファイルが消えた場合は、サーバ再起動時にレプリケーション エラーが発生する。しかし、MySQL 4.0.0 以降を使用している場合は、slave_load_tmpdir 変数を使用して、スレーブのテンポラリ ディレクトリを設定できる。その場合、スレーブは通常の tmpdir 値を使用しないので、tmpdir を適切な (非永続的) 位置に設置する (スレーブサーバはこのパスを使用することになる)。

  • transaction_alloc_block_size

    メモリ ブロックの割り当てサイズ (byte)。 このメモリは、コミットするときにバイナリログへ書き込むための トランザクション内クエリを保存するために使用する。transaction_prealloc_size の説明を参照のこと。

  • transaction_prealloc_size

    永続的バッファの (初期) サイズをtransaction_prealloc_size と呼ぶ。メモリが不十分が原因で、このプール (領域) で割り当てが十分に行えない場合、transaction_alloc_block_size でプールの値を大きくする。トランザクションが済むと、プールは transaction_prealloc_size バイトで切り捨てになる

    単一トランザクション内のすべてのクエリをバッファ内に収めるように、transaction_prealloc_sizeを大きくすると、malloc() システム コールを避けることができる。

  • tx_isolation

    基準にするトランザクション隔離レベル。 デフォルト値は REPEATABLE-READ 。

    この変数は SET TRANSACTION ISOLATION LEVEL ステートメントで設定する。項12.4.6. 「SET TRANSACTION 構文」 を参照のこと。tx_isolation を直接、隔離レベル名に設定する場合に、スペースを含むときには、その名前を引用符で囲み、そのスペースをダッシュと置換する。たとえば、

    SET tx_isolation = 'READ-COMMITTED';
    
  • updatable_views_with_limit

    更新の許可するかどうかを制御する。ビューに基準テーブルで定義したプライマリ キーのすべてのカラムが含まれていない場合に、更新ステートメントで LIMIT 節を含んでいたら、そのビューを更新するかどうか、ということである。このような更新は GUI ツールなどから生成される。ここでの更新は UPDATE または DELETE ステートメントのこと。ここでのプライマリ キーとは PRIMARY KEY または UNIQUE インデックスのことで、NULL をカラムに含まない。

    この変数の値は 2 種類ある。

    • 1 または YES:エラー メッセージではなく、警告だけを発行。(デフォルト値)

    • 0 または NO:更新禁止。

  • version

    サーバのバージョン番号。

  • version_comment

    configure スクリプトには、MySQL を構築するときにコメントを指定できる --with-comment オプションがある。そのコメントの値。

  • version_compile_machine

    マシンのタイプ、または MySQL構築時のアーキテクチャ。

  • version_compile_os

    MySQL構築時のオペレーティング システムのタイプ。

  • wait_timeout

    対話式ではない接続 (反応の無い接続) を終了する前に、サーバがアクティビティを待機する秒数。このタイムアウトは TCP/IP 接続と Unix のソケット ファイル接続だけに適用。名前付きパイプと共有ファイルの接続には使用できない。

    スレッド起動時に、セッション wait_timeout 値は、wait_timeout グローバル値、または interactive_timeout グローバル値で初期化するが、これはクライアントのタイプによる。(CLIENT_INTERACTIVE の接続オプションを mysql_real_connect()) に定義する。) interactive_timeout の説明も参照のこと。

Copyright © 1997, 2010, Oracle and/or its affiliates. All rights reserved. Legal Notices
Top / Previous / Next / Up / Table of Contents
© 2010, Oracle Corporation and/or its affiliates