MySQL語句執行分析(二)

瑜戈發表於2018-09-28

承接上篇文章繼續整理SQL分析

慢查詢

開啟慢查詢,可以設定一個時間閾值,當sSQL執行時間超過閾值,則會被記錄。通過這樣可以定位到需要優化的SQL

檢視慢查詢命令

mysql> show variables like 'slow_query%';
+---------------------+--------------------------------------+
| Variable_name       | Value                                |
+---------------------+--------------------------------------+
| slow_query_log      | OFF                                  |
| slow_query_log_file | /var/lib/mysql/50aacb0262cd-slow.log |
+---------------------+--------------------------------------+
複製程式碼
mysql> show variables like 'long_query_time';
+-----------------+-----------+
| Variable_name   | Value     |
+-----------------+-----------+
| long_query_time | 10.000000 |
+-----------------+-----------+
複製程式碼

引數說明:

slow_query_log :是否開啟慢查詢 slow_query_log_file :慢查詢日誌存放位置 long_query_time:設定閾值,超過該值才會做記錄

設定步驟

開啟慢查詢

set global slow_query_log='ON';
複製程式碼

設定存放日誌位置

set global slow_query_log_file='/var/lib/mysql/slow.log ';
複製程式碼

設定超時時間

set global long_query_time=1;
複製程式碼

日誌效果

  • 首先我執行一句SQL
    mysql> select sleep(3);
    +----------+
    | sleep(3) |
    +----------+
    |        0 |
    +----------+
    1 row in set (3.00 sec)
    複製程式碼
  • 檢視日誌記錄
    MySQL語句執行分析(二)
    可以檢視到涉及到超過1S的SQL詳情

相關文章