2

最近、早朝に自分の Web サイトで AJAX データの読み込みが非常に遅いことに気付きました。Chrome ブラウザーの Web 開発者機能を使用すると、通常は待機 300 ~ 500 ミリ秒、受信 100 ~ 300 ミリ秒の速度が最大 5 秒まで向上します。このサイトでは、jQuery、Codeigniter/PHP、および MySQL を使用しています。

VPS のサポート デスクに確認したところ、睡眠クエリが多すぎるとのことでした。

There are many sleep queries for the database 'databasename'.

| 4341 | mysqluser | 204.197.252.106:48669 | databasename | Sleep | 19 | | |
| 4373 | mysqluser | 204.197.252.106:59966 | databasename | Sleep | 78 | | |
| 4387 | mysqluser | 204.197.252.106:34807 | databasename | Sleep | 46 | | |
| 4388 | mysqluser | 204.197.252.106:35099 | databasename | Sleep | 6 | | |
| 4390 | mysqluser | 204.197.252.106:35452 | databasename | Sleep | 26 | | |
| 4391 | mysqluser | 204.197.252.106:35589 | databasename | Sleep | 7 | | |
| 4392 | mysqluser | 204.197.252.106:35680 | databasename | Sleep | 19 | | |
| 4393 | mysqluser | 204.197.252.106:36264 | databasename | Sleep | 12 | | |
| 4394 | mysqluser | 204.197.252.106:36327 | databasename | Sleep | 11 | | |

これが朝の減速の原因ですか?速度低下の原因を突き止め、それを取り除くにはどうすればよいですか?

4

2 に答える 2

8
  1. これらのスリープクエリは単なるオープン接続です。彼らが数百人にならなければ、私は彼らに悩まされることはないでしょう。ほとんどの場合、フレームワーク/ORMが使用している接続プールを形成しています。

  2. 遅いクエリの問題を診断するには、遅いクエリログを取得する必要があります。遅いクエリログがオフになっている場合は、すぐにオンにします。

  3. 適切なログファイルを取得したら、explainを使用して実行速度の遅いクエリを分析する必要があります。Explainを使用すると、Mysqlのクエリプランナーとアナライザーがクエリをどのように実行しているかを確認できます。

  4. また、最も実行速度の遅いクエリにexplainの出力をテーブルスキーマとともに貼り付けて、問題をより適切に診断できるようにします。

于 2012-04-28T11:56:49.680 に答える