MySQLINNODBエンジンのパフォーマンス最適化の概要1

1.同時:データにはこれまでにいくつの接続がありますか,mysqlにログインしてから実行する

「max_used_connections」のようなグローバルステータスを表示する;

「max_connections」などの変数を表示する;

一般的,以下の関係が満たされます:

max_used_connections / max_connections * 100% <= 85%

2.Innodb_buffer_pool:これは、innodbエンジンのmysqlパフォーマンスにおいて決定的な役割を果たします。

Innodbはデータとインデックスをキャッシュするため,公式の推奨事項は、 70-80% 使用可能なメモリ。

商売が少ない場合,そして爆発しません,innodb_buffer_pool_sizeを大きすぎるように設定する必要はありません。

3.innodb_log_file_size:構成ファイルのプロンプトは、innodb_buffer_pool_sizeの25%に設定されています

書き込み負荷が高い状況では重要です。値が大きいほど、パフォーマンスが高くなります,ただし、回復時間が長くなる可能性があります。

4.innodb_flush_logs_at_trx_commit:

デフォルト値は 1,これは、コミットごとの更新トランザクションを意味します(または各トランザクション外のステートメント)ディスクにフラッシュされます,

これは非常にリソースを消費します。に設定されている場合 2 ,つまり、最初にログをオペレーティングシステムのキャッシュにフラッシュします,その後、ログは

毎秒ディスクにフラッシュ,したがって、通常、1秒あたり1〜2回の更新の消費は失われません。。

5.innodb_log_buffer_size:この値は、高い同時実行性を示します,ログキャッシュが1秒以内にいっぱいになった場合

この値,ib_logfilexのメモリからディスクにすぐにフラッシュします。この値は通常8Mに設定されます。,によると

必要に応じて実際の状況に対処する。

6.一時テーブル: 执行「created_tmp%」のようなグローバルステータスを表示; 現れる

 

毎回一時テーブルを作成する,Created_tmp_tablesが増加します,ディスク上に一時テーブルを作成する場合,

Created_tmp_disk_tablesも増加しました,Created_tmp_filesは、MySQLサービスによって作成された一時ファイルを表します

ファイル数:帰属Created_tmp_disk_tables / Created_tmp_tables * 100% <= 25%

いつ,健康状態が。25%以上の場合,説明tmp_table_sizeおよびmax_heap_table_size

値が小さい,追加する必要があります,両方を特定の値に増やします,たとえば、それらはすべて256Mに設定されています(実際、すでに非常に大きいです),

Created_tmp_disk_tablesの場合 / Created_tmp_tables * 100% 値が下がらない,

SQLステートメントに問題がある可能性があることを説明する,ハードディスク一時テーブルの強制使用。実行することによって

変数を表示します。 (‘tmp_table_size’, ‘max_heap_table_size’);

tmp_table_sizeとmax_heap_table_sizeのサイズを知っている。

7.テーブルを開く:'open%tables%'のようなshowglobalstatusを実行します; 次のように表示されます:

 

Open_tablesは、開いているテーブルの数を表します,Opened_tablesは、開かれたテーブルの数を示します,Opened_tablesの数が多すぎる場合,

構成のtable_cache値が小さすぎる可能性があることに注意してください。大きくする,512など.

'open%tables%'のようなshowglobalstatusを実行する;「table_cache」のような変数を表示します;

Open_tablesを探す ,Opened_tables ,table_cache(5.1.3この値の後、table_open_cacheと呼ばれます)の値,

それらは以下の関係を満たします。

open_tables / opens_tables * 100% >= 85%

open_tables / table_cache(5.1.3この値の後、table_open_cacheと呼ばれます) * 100% <= 95%

8.プロセスの使用法: 'Thread%'のようなshowglobalstatusを実行します;現れる

thread_createdは、作成されたスレッドの数を示します,Threads_createdの値が大きすぎることがわかった場合,

MySQLサーバーがスレッドを作成および破棄していることを示します,これはより多くのリソースを消費します,適切に増やすことができます

構成ファイルのthread_cache_size値(もしも[mysqld]フィールドの下にそのようなアイテムはありません,自分で追加してください)。

状況に応じて16、32、64に増やすなど。'thread_cache_size'のようなshow変数を実行する;

現在の構成ファイルに設定されているthread_cache_sizeの値を判別できます。。使用Threads_created/Connections

キャッシュヒット率を計算する.

 

 

返信を残します