mysqld
        サーバで使用されるデフォルトのバッファサイズは次のコマンドで確認できます。
      
shell> mysqld --help
        このコマンドによって、mysqld
        オプションと設定可能な変数すべての一覧が生成されます。この出力には、デフォルトの変数値も記載され、以下のように表示されます。
      
back_log current value: 5 bdb_cache_size current value: 1048540 binlog_cache_size current value: 32768 connect_timeout current value: 5 delayed_insert_timeout current value: 300 delayed_insert_limit current value: 100 delayed_queue_size current value: 1000 flush_time current value: 0 interactive_timeout current value: 28800 join_buffer_size current value: 131072 key_buffer_size current value: 1048540 lower_case_table_names current value: 0 long_query_time current value: 10 max_allowed_packet current value: 1048576 max_binlog_cache_size current value: 4294967295 max_connections current value: 100 max_connect_errors current value: 10 max_delayed_threads current value: 20 max_heap_table_size current value: 16777216 max_join_size current value: 4294967295 max_sort_length current value: 1024 max_tmp_tables current value: 32 max_write_lock_count current value: 4294967295 myisam_sort_buffer_size current value: 8388608 net_buffer_length current value: 16384 net_retry_count current value: 10 net_read_timeout current value: 30 net_write_timeout current value: 60 read_buffer_size current value: 131072 read_rnd_buffer_size current value: 262144 slow_launch_time current value: 2 sort_buffer current value: 2097116 table_cache current value: 64 thread_concurrency current value: 10 tmp_table_size current value: 1048576 thread_stack current value: 131072 wait_timeout current value: 28800
        現在実行中の mysqld
        サーバがある場合は、次のステートメントで変数に実際に使用されている値を調べることができます。
      
mysql> SHOW VARIABLES;
また、次のステートメントでは、実行中のサーバの統計やステータスインジケータを調べることができます。
mysql> SHOW STATUS;
        すべての変数の詳細説明については、本マニュアルの
        SHOW VARIABLES
        セクションを参照してください。 See
        項4.6.8.4. 「SHOW VARIABLES」。
        ステータス変数詳細については、項4.6.8.3. 「SHOW STATUS」
        を参照してください。
      
        サーバ変数とステータス情報は、mysqladmin
        でも入手できます。
      
shell>mysqladmin variablesshell>mysqladmin extended-status
MySQL は非常にスケーラブルなアルゴリズムを使用しているため、通常は実行時のメモリ消費が非常に小さくなります。しかし、MySQL に対するメモリを多く割り当てると、通常はパフォーマンスが向上します。
        MySQL
        サーバをチューニングする際に使用される最も重要な変数は
        key_buffer_size と
        table_cache の 2
        つです。他の変数の変更を行う前にこの変数をあらかじめ適切に設定しておくことで自信がつきます。
      
        以下に典型的な変数を実行時に設定している例を示します。この例は
        mysqld_safe
        スクリプトを使用し、--name=value
        構文で変数 name を値
        value
        に設定しています。この構文は、MySQL 4.0
        から利用できます。旧バージョンの MySQL
        の場合は、以下の相違点を考慮してください。
      
            mysqld_safe
            ではなく、safe_mysqld
            を使用する。
          
            --set-variable=name=value または
            -O name=value
            構文を使用して変数を設定する。
          
            _size で終わる変数名は
            _size
            なしでの指定が必要な場合がある。たとえば、sort_buffer_size
            の旧名は sort_buffer
            である。read_buffer_size の旧名は
            record_buffer
            である。サーババージョンで認識される変数を調べるときは
            mysqld --help を使用する。
          
最小 256M のメモリで多数のテーブルがあり、中程度のクライアントで最大のパフォーマンスを得るには、次のように使用します。
shell>mysqld_safe --key_buffer_size=64M --table_cache=256 \--sort_buffer_size=4M --read_buffer_size=1M &
メモリが 128M で、テーブルは少数で大量のソートの実行が必要な場合は、次のように使用できます。
shell> mysqld_safe --key_buffer_size=16M --sort_buffer_size=1M
メモリがほとんどなく大量の接続がある場合は、次のように使用します。
shell>mysqld_safe --key_buffer_size=512K --sort_buffer_size=100K \--read_buffer_size=100K &
また、次のようにもできます。
shell>mysqld_safe --key_buffer_size=512K --sort_buffer_size=16K \--table_cache=32 --read_buffer_size=8K -O net_buffer_length=1K &
        使用可能メモリより大幅に大きいテーブルで
        GROUP BY または ORDER
        BY を実行する場合は
        read_rnd_buffer_size
        の値を大きくしてソート操作後のレコードの読み取りの速度を上げる必要があります。
      
        MySQL
        をインストールしたときは、support-files
        ディレクトリに複数の my.cnf
        サンプルファイルの、my-huge.cnf、my-large.cnf、my-medium.cnf、および
        my-small.cnf
        が格納され、システム最適化のベースとして使用できます。
      
        同時接続が非常に多い場合、接続ごとに
        mysqld
        で使用されるメモリを非常に小さくしていないとスワップの問題が発生することがあります。言うまでもなく、すべての接続に使用可能なメモリが十分ある場合は
        mysqld
        のパフォーマンスが向上します。
      
        mysqld または
        mysqld_safe
        のコマンドラインでオプションを指定した場合、そのサーバの呼び出しでしか有効性が保持されないことに注意してください。
        サーバ実行のたびにオプションを使用する場合は、オプション設定ファイルに配置します。
      
パラメータ変更の有効性を調べるには、次のように実行します。
shell> mysqld --key_buffer_size=32m --help
        必ず --help
        を最後に指定します。最後にしないと、コマンドラインのそれ以降に記載されたオプションの効果が出力に反映されません。
      
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.

