【體繫結構】MySQL 記錄檔--慢查詢日誌

來源:互聯網
上載者:User

顧名思義,慢查詢日誌中記錄的是執行時間較長的 query

可以設一個閥值、將已耗用時間超過該值的所有SQL語句都記錄到慢查詢記錄檔中

該閥值可以通過參數long_query_time來設定、預設是10秒

這裡需要一點、對於已耗用時間正好等於long_query_time的情況、並不會被記錄

因為、在原始碼裡是判斷大於long_query_time、而非大於等於

mysql> show variables like 'log_slow_queries';
+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| log_slow_queries | ON    |
+------------------+-------+
1 row in set (0.00 sec)

mysql> show variables like 'long_query_time';
+-----------------+-----------+
| Variable_name  | Value    |
+-----------------+-----------+
| long_query_time | 10.000000 |
+-----------------+-----------+
1 row in set (0.00 sec)

另一個和慢查詢日誌相關的參數是log_queries_not_using_indexes

如果啟動並執行SQL沒有使用索引、則MySQL同樣會將這條語句記錄到慢查詢記錄檔

mysql> show variables like 'log_queries_not_using_indexes';
+-------------------------------+-------+
| Variable_name                | Value |
+-------------------------------+-------+
| log_queries_not_using_indexes | OFF  |
+-------------------------------+-------+
1 row in set (0.00 sec)

在這裡、我沒有開啟、但有點需要提醒、如果線上修改該參數、雖然沒有報錯、但是不會生效

MySQL 還提供了專門用來分析滿查詢日誌的工具程式 mysqldumpslow、用來協助MySQL DBA解決可能存在的效能問題

例子、獲得 TOP-5 SQL語句:

[mysql@localhost bin]$ ./mysqldumpslow -s al -n 5 /home/mysql/mysql/log/slow.log

Reading mysql slow query log from /home/mysql/mysql/log/slow.log
Count: 1  Time=0.00s (0s)  Lock=0.00s (0s)  Rows=0.0 (0), 0users@0hosts

  • 1
  • 2
  • 下一頁

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.