このブログの記事、ブログのシリーズの一部です
スロークエリログには何と言っていますか? それはあなたのアプリケーションのキー問合せが含まれていますか?
MySQLサーバはこの状態でクエリをどのくらい実行された?
それは常に遅れてまたはこれらのクエリは、数週間前までは細かい走っていますか?
どちらかといえば何が変わった?
またによっていくつかのガイドラインに従うことによって開始Shlomi Noachを 。
彼は、このブログの記事に記載されているいくつかの有用なクエリを持っています。
だからスロークエリの問題にもう少し掘ることができます。
あなたの結果は異なりますので、これは単純な例です。
最初のいくつかの数字を収集します。
%スロークエリ
ただ、デモはデータので、あなたの結果は異なります。
slow_query_log
場所、フルタイムのDBAが既に知っているはずですが、念のために収集します。
これらのクエリを見ていると、実行を開始すると、問題があるかもしれないものを見るために説明しています。
必要であれば、あなたは助けるためにいくつかのツールを確認することができます。
- ジョージ·RRマーティン 、 魂のゲーム
"唯一の新聞を読み、せいぜい現代の作家の本は眼鏡をscorns極端に近視の人のように私には見えます誰か。 彼は何かを見たり聞いたりするために取得することはありませんので、彼は、彼の時代の偏見や流行に完全に依存しています。 "
- アルバート·アインシュタイン
最良の結果を得るために、これらのツールの1以上を使用し、全体像を取得し、あなたに提示されているかを理解することを確認してください。
を説明の詳細については、下記の通りです:
クエリパフォーマンスを支援するいくつかの追加の懸念。
クエリキャッシュの効率
ただ、デモはデータので、あなたの結果は異なります。
私はピーターがまだ参照してください書かれたもの書き換えしたくない彼のブログの記事を。
クエリキャッシュがどのように効率的で評価します。 あなたのクエリがどのように決定論的なのですか?
INDEXを必要としている結合
ただ、デモはデータので、あなたの結果は異なります。
だけでなく、すべてのインデックスが必要その結合見つけるほどあなたのクエリキャッシュの効率を見直すだけでなく、うまくいけば、ログで発見遅いクエリを評価できる" セレクト@ slow_query_log_fileを";
うまくいけば、これは、MySQL内で非常に古いの懸念を解決する上で開始たどっている。
MySQLサーバはこの状態でクエリをどのくらい実行された?
それは常に遅れてまたはこれらのクエリは、数週間前までは細かい走っていますか?
どちらかといえば何が変わった?
またによっていくつかのガイドラインに従うことによって開始Shlomi Noachを 。
彼は、このブログの記事に記載されているいくつかの有用なクエリを持っています。
- "以下のクエリは、データベースごとにエンジンごとの合計サイズを返します"。 - Shlomi Noach。
- " いくつかのインデックスが別の接頭語であるかどうかを確認してください(それが冗長である場合)" - Shlomi Noach。
" 任意の2つのインデックスが同一であるかどうかを確認してください" - Shlomi Noach。
だからスロークエリの問題にもう少し掘ることができます。
あなたの結果は異なりますので、これは単純な例です。
最初のいくつかの数字を収集します。
%スロークエリ
ただ、デモはデータので、あなたの結果は異なります。
show status like 'Slow_queries';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Slow_queries | 7 |
+---------------+-------+
show status like 'Questions';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Questions | 84 |
+---------------+-------+
1 row in set (0.01 sec)
SELECT (7 / 84) * 100 as "% Slow Queries";
+----------------+
| % Slow Queries |
+----------------+
| 8.3333 |
+----------------+
slow_query_log
場所、フルタイムのDBAが既に知っているはずですが、念のために収集します。
show variables like '%slow_query%';
+---------------------+-------------------------------+
| Variable_name | Value |
+---------------------+-------------------------------+
| slow_query_log | ON |
| slow_query_log_file | /var/lib/mysql/mysql-slow.log |
+---------------------+-------------------------------+
2 rows in set (0.00 sec)
これらのクエリを見ていると、実行を開始すると、問題があるかもしれないものを見るために説明しています。
必要であれば、あなたは助けるためにいくつかのツールを確認することができます。
- http://dev.mysql.com/doc/refman/5.6/en/mysqldumpslow.html
- 例:#mysqldumpslow-T 10-sで-Rのmysql-slow.log
- http://www.percona.com/doc/percona-toolkit/2.2/pt-query-digest.html
- 例:#PT-クエリダイジェストのmysql-slow.log
- http://hackmysql.com/mysqlsla
- 例:#。/ binに/ mysqlsla - ログ型遅いの/ var / libに/ mysqlの/のmysql-slow.log
- http://www.fromdual.com/tools
- ジョージ·RRマーティン 、 魂のゲーム
"唯一の新聞を読み、せいぜい現代の作家の本は眼鏡をscorns極端に近視の人のように私には見えます誰か。 彼は何かを見たり聞いたりするために取得することはありませんので、彼は、彼の時代の偏見や流行に完全に依存しています。 "
- アルバート·アインシュタイン
最良の結果を得るために、これらのツールの1以上を使用し、全体像を取得し、あなたに提示されているかを理解することを確認してください。
を説明の詳細については、下記の通りです:
- http://dev.mysql.com/doc/refman/5.6/en/using-explain.html
- http://www.lornajane.net/posts/2011/explaining-mysqls-explain
- http://www.slideshare.net/myxplain/explaining-the-mysql-explain
- http://www.slideshare.net/ligaya/explain
- http://www.techrepublic.com/article/three-easy-ways-to-optimize-your-mysql-queries/6137168
クエリパフォーマンスを支援するいくつかの追加の懸念。
クエリキャッシュの効率
ただ、デモはデータので、あなたの結果は異なります。
> SELECT @@have_query_cache;
+--------------------+
| @@have_query_cache |
+--------------------+
| YES |
+--------------------+
>show status like '%Qcache_hits%';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Qcache_hits | 32 |
+---------------+-------+
1 row in set (0.00 sec)
> show status like '%Com_select%';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Com_select | 16 |
+---------------+-------+
1 row in set (0.00 sec)
> SELECT ( 32 / (16 + 32) ) * 100 AS "Query Cache Efficiency";
+------------------------+
| Query Cache Efficiency |
+------------------------+
| 66.6667 |
+------------------------+
1 row in set (0.00 sec)
私はピーターがまだ参照してください書かれたもの書き換えしたくない彼のブログの記事を。
クエリキャッシュがどのように効率的で評価します。 あなたのクエリがどのように決定論的なのですか?
- http://www.mysqlperformanceblog.com/2006/09/29/what-to-tune-in-mysql-server-after-installation/
- http://www.mysqlperformanceblog.com/2006/07/27/mysql-query-cache/
INDEXを必要としている結合
ただ、デモはデータので、あなたの結果は異なります。
> show status like '%Select_range_check%';
+--------------------+-------+
| Variable_name | Value |
+--------------------+-------+
| Select_range_check | 0 |
+--------------------+-------+
> show status like '%Select_full_join%';
+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| Select_full_join | 1 |
+------------------+-------+
> SELECT (0 + 1) AS "# of Joins that need an index";
#
This is used below as the numerator in
"# of Joins that need an index today"
+-------------------------------+
| # of Joins that need an index |
+-------------------------------+
| 1 |
+-------------------------------+
> show status like 'Uptime';
+---------------+--------+
| Variable_name | Value |
+---------------+--------+
| Uptime | 335243 |
+---------------+--------+
> SELECT (1/ (335243/86400 )) as " # of Joins that need an index today" ;
+-------------------------------------+
| # of Joins that need an index today |
+-------------------------------------+
| 0.2577 |
+-------------------------------------+
だけでなく、すべてのインデックスが必要その結合見つけるほどあなたのクエリキャッシュの効率を見直すだけでなく、うまくいけば、ログで発見遅いクエリを評価できる" セレクト@ slow_query_log_fileを";
うまくいけば、これは、MySQL内で非常に古いの懸念を解決する上で開始たどっている。