ホームページ >運用・保守 >Linuxの運用と保守 >Linux で MySQL を最適化する方法の詳細な紹介
この記事は主にLinuxのMySQLの最適化例の詳細な説明に関する関連情報を紹介します。必要な方は
Linux
vimのMySQLの最適化例の詳細な説明を参照してください。 /etc/my.cnf 以下は、my.cnf ファイル内の [mysqld] 段落の内容をリストするだけです。他の段落の内容は MySQL の実行パフォーマンスにほとんど影響を与えないため、今のところ無視されます。
[mysqld] port = 3306 serverid = 1 socket = /tmp/mysql.sock skip-locking
MySQL の外部ロックを回避し、エラーの可能性を減らし、安定性を高めます。
skip-name-resolve
MySQL による外部接続での DNS 解決の実行を無効にする このオプションを使用すると、MySQL が DNS 解決に費やす時間を削減できます。ただし、このオプションをオンにすると、すべてのリモート ホストの接続認証で IP アドレスを使用する必要があることに注意してください。そうしないと、MySQL が接続リクエストを正常に処理できなくなります。
back_log = 384
back_log パラメータの値は、MySQL が新しいリクエストへの応答を一時的に停止するまでに、短期間にスタックに保存できるリクエストの数を示します。システムが短期間に多数の接続を行う場合は、受信 TCP/IP 接続のリスニング キュー のサイズを指定するこのパラメーターの値を増やす必要があります。オペレーティング システムが異なると、このキュー サイズには独自の制限があります。 back_log をオペレーティング システムの制限よりも高く設定しようとしても、効果はありません。デフォルト値は 50 です。 Linux システムの場合は、512 未満の 整数 に設定することをお勧めします。
key_buffer_size = 256M
key_buffer_size は、インデックス作成に使用されるバッファ サイズを指定します。インデックス処理のパフォーマンスを向上させるために増加させます。約 4GB のメモリを備えたサーバーの場合、このパラメータは 256M または 384M に設定できます。注: このパラメータ値の設定が大きすぎると、サーバーの全体的な効率が低下します。
max_allowed_packet = 4M thread_stack = 256K table_cache = 128K sort_buffer_size = 6M
クエリソート時に使用できるバッファサイズ。注: このパラメータに対応する割り当てメモリは、各接続に排他的です。接続数が 100 の場合、割り当てられるソート バッファの合計サイズは 100 × 6 = 600MB です。したがって、メモリが約 4GB のサーバーの場合は、6 ~ 8M に設定することをお勧めします。
read_buffer_size = 4M
読み取りクエリ操作で使用できるバッファ サイズ。 sort_buffer_size と同様、このパラメータに対応する割り当てメモリも各接続に排他的です。
join_buffer_size = 8M
ジョイントクエリ操作で使用できるバッファサイズ。sort_buffer_sizeと同様に、このパラメータに対応する割り当てメモリも各接続に排他的です。
myisam_sort_buffer_size = 64M table_cache = 512 thread_cache_size = 64 query_cache_size = 64M
MySQL クエリ バッファのサイズを指定します。これは MySQL コンソールで確認できます。Qcache_lowmem_prunes の値が非常に大きい場合、バッファリングが不十分であることが多いことを示します。値が小さい場合は、効率に影響します。Qcache_free_blocks の値が非常に大きい場合は、バッファ内に多くのフラグメントがあることを示します。
tmp_table_size = 256M max_connections = 768
MySQL で許可される接続プロセスの最大数を指定します。フォーラムにアクセスするときに Too ManyConnections エラー メッセージが頻繁に表示される場合は、このパラメータの値を増やす必要があります。
max_connect_errors = 10000000 wait_timeout = 10
リクエストの最大接続時間を指定します。約 4GB のメモリを備えたサーバーの場合は、5 ~ 10 に設定できます。
thread_concurrency = 8
このパラメータの値はサーバーの論理 CPU の数 *2 です。この例では、サーバーには 2 つの物理 CPU があり、各物理 CPU は H.T ハイパースレッディングをサポートしているため、実際の値は 4*2=8 です
。skip-networking
このオプションを有効にすると、MySQL の TCP/IP 接続方法が完全にオフになります。WEB サーバーがリモート接続を通じて MySQL データベース サーバーにアクセスしている場合は、このオプションを有効にしないでください。そうしないと、通常の接続ができなくなります。
table_cache=1024
物理メモリが大きいほど、設定も大きくなります。デフォルトは 2402 ですが、最適になるように 512 ~ 1024 に調整してください
innodb_additional_mem_pool_size=4M
デフォルトは 2M です
innodb_flush_log_at_trx_commit=1
0 に設定すると、innodb_log_buffer_size キューがいっぱいになるまで待機してから保存されます。デフォルトは 1
innodb_log_buffer_size=2M
デフォルトは 1M
innodb_thread_concurrency=8
デフォルト値の 8
key_buffer_size=256M #默认为218,调到128最佳 tmp_table_size=64M #默认为16M,调到64-256最挂 read_buffer_size=4M #默认为64K read_rnd_buffer_size=16M #默认为256K sort_buffer_size=32M #默认为256K thread_cache_size=120 #默认为60 query_cache_size=32M
を使用することをお勧めします:
多くの場合、詳細な分析が必要です
。 Key_reads が大きすぎる場合は、my.cnf の Key_buffer_size を増やし、Key_reads/Key_read_requests を少なくとも 1/100 に保つ必要があります。
2. Qcache_lowmem_prunes が非常に大きい場合は、Query_cache_size の値を増やす必要があります。
以上がLinux で MySQL を最適化する方法の詳細な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。