ホームページ  >  記事  >  運用・保守  >  Linux で MySQL を最適化する方法の詳細な紹介

Linux で MySQL を最適化する方法の詳細な紹介

黄舟
黄舟オリジナル
2017-06-04 11:26:421666ブラウズ

この記事は主にLinuxMySQLの最適化例の詳細な説明に関する関連情報を紹介します。必要な方は

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。