標籤:style blog http ar color os 使用 sp on
分析MySQL語句查詢效能的方法除了使用 EXPLAIN 輸出執行計畫,還可以讓MySQL記錄下查詢超過指定時間的語句,我們將超過指定時間的SQL語句查詢稱為“慢查詢”。
查看/設定“慢查詢”的時間定義
1 mysql> show variables like "long%";2 +-----------------+----------+3 | Variable_name | Value |4 +-----------------+----------+5 | long_query_time | 0.000100 |6 +-----------------+----------+7 1 row in set (0.00 sec)
如上述語句輸出,“慢查詢”的時間定義為2秒(方便測試,一般設定為1-10秒)。使用下面語句定義“慢查詢”時間, MSYQL將記錄下所有執行時間超過2妙的SQL語句
1 mysql> set long_query_time=2;2 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)
結果:
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)
MySql開啟慢查詢