linuxの下でmysqlの遅いクエリーを開いて、クエリーの文を分析します


一、どうしてこのクエリーを開くのですか.
データベースはボトルネックになりやすい場所ですが、今はノースqlの議論がこんなに暑くて、データベースに憂鬱になっていると思います.mysqlの中で最も速度に影響するのは、クエリーが非常に遅い文です.これらの遅い文は、書くのが合理的ではないか、ビッグデータの下で複数のテーブルの連合クエリーなどかもしれません.だから、これらの文を見つけて、原因を分析して、最適化します.これもこのブログを出した理由です.
二、mysqlの遅いクエリーを開く
方法1:コマンドでスロークエリーmysql>show variables like"%long%";//デフォルトで遅いクエリの時間を10秒確認
+-----------------+----------+
| Variable_name   | Value    |
+-----------------+----------+
| long_query_time | 10.000000 |
+-----------------+----------+
1 row in set (0.23 sec)

mysql> set global long_query_time=2;//2秒に設定し、globalを加えると、次回mysqlが有効になりますQuery OK、0 rows affected(0.00 sec)mysql>show variables like"%slow%";スロークエリがオンになっているかどうかを確認します
mysql> show variables like "%slow%";
+---------------------+-----------------------------------+
| Variable_name       | Value                             |
+---------------------+-----------------------------------+
| log_slow_queries    | ON                                |
| slow_launch_time    | 2                                 |
| slow_query_log      | ON                                |
| slow_query_log_file | /home/mysql/data/slow_queries.log |
+---------------------+-----------------------------------+
4 rows in set (0.00 sec)

mysql> set slow_query_log='ON';//globalを加えないと、間違って報告されます.
mysql> set slow_query_log='ON';
ERROR 1229 (HY000): Variable 'slow_query_log' is a GLOBAL variable and should be set with SET GLOBAL

mysql> set global slow_query_log='ON';//遅いクエリQuery OK、0 rows affected(0.28 sec)mysql>show variables like"%slow%";//オンになっているかどうかを確認
mysql> show variables like "%slow%"; 
+---------------------+-----------------------------------+
| Variable_name       | Value                             |
+---------------------+-----------------------------------+
| log_slow_queries    | ON                                |
| slow_launch_time    | 2                                 |
| slow_query_log      | ON                                |
| slow_query_log_file | /home/mysql/data/slow_queries.log |
+---------------------+-----------------------------------+
4 rows in set (0.00 sec)

方法2、mysqlのプロファイルmyを修正する.cnfは[mysqld]に以下の内容を加える
long_query_time = 2
log-slow-queries = /usr/local/mysql/mysql-slow.log

再起動/usr/local/mysql/libexec/mysqld restart