ビューとMySQLの実施状況を分析します

 

MySQLのパフォーマンスの問題を感じた場合、通常、あなたは、MySQL、使用の実装の現在の状態を見て  show processlist 例えばビューに、:

状態情報は非常に重要である[ステータス]列は、各列の意味を見て、その後、状態の一般的な状態を見て

列の意味

1、ID

ロゴ、あなたが例えば、使用するときに声明を殺すために、 mysql> kill 207;

2、ユーザー

ルートでない場合は表示され、現在のユーザーが、このコマンドは、あなたの範囲内にSQL文を表示します。

3、ホスト

この文は、IPは、問題文のユーザーを追跡するために使用可能なポートから発行された表示

4、デシベル

現在データベースに接続され、このプロセスを表示します

5、コマンド

現在の接続、一般的には休止している(睡眠)、クエリ(クエリ)の表示コマンド、(接続)を接続

6、時間

秒でこの状態の継続時間、

7、状態

現在の接続状態のためのSQL文を使用して表示し、それが重要な柱である、状態は、それらが完了する前にこのような状態などのデータを送信するクエリ、結果の並べ替え、テーブルをtmpにするために、コピーを通過する必要があり、として、刑の執行の状態のみであり、

8、インフォ

理由は限られた長さのため、このSQL文を表示するので、長いSQL文が不完全で表示するために、しかし、裁判官は声明のための重要な基礎を発行

状態の一般的な状態分析

1、スリープ

接続プールによって、スリープ状態は、例えば、特定の数の範囲内で一定でなければならない場合、一般的には、リソースが解放されない表します。

ネットワークの出力が1秒ほどかかりながら0.1秒のデータクエリ時間は、元のデータ接続の0.1秒を解放することができますが、フロントエンドプログラムが近くで行われていないため、直接の出力は、その結果は、ユーザーのデスクトップ、データベースの前に表示されません。接続がスリープ状態に維持されてきました

2、ロック

操作がロックされ、一般に使用がよく生成InnoDBのロック状態を軽減することができます

TMPテーブルに3、コピー

インデックスと既存の構造がクエリをカバーできない場合は、クエリの要件を満たすために一時テーブルを作成し、圧力コピーO巨大なI / tmpのテーブルの通常のテーブルの問い合わせもお勧め削減に関するお問合せや、さらに最適化するには、クエリ、もし文のこの状態が長時間実行されると、それは真剣に、操作を殺すために時間を他の操作に影響を与えます

4、Sending data

Sending data并不是发送数据,是从物理磁盘获取数据的进程,如果你的影响结果集较多,那么就需要从不同的磁盘碎片去抽取数据,如果sending data连接过多,通常是某查询的影响结果集过大,也就是查询的索引项不够优化

5、Storing result to query cache

如果频繁出现此状态,使用set profiling分析,如果存在资源开销在SQL整体开销的比例过大(即便是非常小的开销,看比例),则说明query cache碎片较多,使用flush query cache可即时清理,Query cache参数可适当酌情设置

MySQL数据库是常见的两个瓶颈是CPU和I/O的瓶颈,CPU在饱和的时候一般发生在数据装入内存或从磁盘上读取数据时候。磁盘I/O瓶颈发生在装入数据远大于内存容量的时候,如果应用分布在网络上,那么查询量相当大的时候那么平瓶颈就会出现在网络上,我们可以用mpstat, iostat, sar和vmstat来查看系统的性能状态。

除了服务器硬件的性能瓶颈,对于MySQL系统本身,我们可以使用工具来优化数据库的性能,通常有三种:使用索引,使用EXPLAIN分析查询以及调整MySQL的内部配置。

在优化MySQL时,通常需要对数据库进行分析,常见的分析手段有慢查询日志,EXPLAIN 分析查询,profiling分析以及show命令查询系统状态及系统变量,通过定位分析性能的瓶颈,才能更好的优化数据库系统的性能。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接

おすすめ

転載: www.cnblogs.com/yoyo1216/p/11993718.html