分析MySQL語句查詢性能的方法除了使用 EXPLAIN 輸出執行計劃,還可讓MySQL記錄下查詢超過指定時間的語句,咱們將超過指定時間的SQL語句查詢稱爲「慢查詢」。mysql
記錄慢查詢的方法:
查看/設置「慢查詢」的時間定義sql
mysql> show variables like "long%";
+-----------------+----------+
| Variable_name | Value |
+-----------------+----------+
| long_query_time | 0.000100 |
+-----------------+----------+
1 row in set (0.00 sec)
如上述語句輸出,「慢查詢」的時間定義爲0.0001秒(方便測試,通常設置爲1-10秒)。使用下面語句定義「慢查詢」時間性能
mysql> set long_query_time=0.0001;
Query OK, 0 rows affected (0.00 sec)
開啓「慢查詢」記錄功能測試
mysql> show variables like "slow%";
+---------------------+------------------------------------+
| Variable_name | Value |
+---------------------+------------------------------------+
| slow_launch_time | 2 |
| slow_query_log | OFF |
| slow_query_log_file | /opt/mysql/data/localhost-slow.log |
+---------------------+------------------------------------+
3 rows in set (0.00 sec)
上述語句查看「慢查詢」的配置信息,你能夠自定義日誌文件的存放,但必須將 slow_query_log 全局變量設置爲「ON」狀態,執行如下語句:日誌
mysql> set global slow_query_log=ON;
Query OK, 0 rows affected (0.01 sec)
結果:get
mysql> show variables like "slow%";
+---------------------+------------------------------------+
| Variable_name | Value |
+---------------------+------------------------------------+
| slow_launch_time | 2 |
| slow_query_log | ON |
| slow_query_log_file | /opt/mysql/data/localhost-slow.log |
+---------------------+------------------------------------+
3 rows in set (0.00 sec)it