程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> mysql慢查詢使用詳解

mysql慢查詢使用詳解

編輯:關於MYSQL數據庫

       1 慢查詢定義

      指mysql記錄所有執行超過long_query_time參數設定的時間阈值的SQL語句。慢查詢日志就是記錄這些sql的日志。

      2 開啟慢查詢日志

      找到mysql配置文件my.cnf.在mysqld的下面添加

      代碼如下:

      log-slow-queries = D:/MySQL/log/mysqld-slow-query.log #日志存在的位置。(注意權限的問題,可以不用設置,系統會給一個缺省的文件host_name-slow.log)

      long-query-time = 5 #SQL執行時間阈值,默認為10秒。

      #log-long-format #說log-long-format選項是用來設置日志的格式,它是以擴展方式記錄有關事件。擴展方式可記錄誰發出查詢和什麼時候發出查詢的信息。可使我們更好地掌握客戶端的操作情況。

      #log-slow-admin-statements #將慢管理語句例如OPTIMIZE TABLE、ANALYZE TABLE和ALTER TABLE記入慢查詢日志。

      log-queries-not-using-indexes #如果運行的SQL語句沒有使用索引,則mysql數據庫同樣會將這條SQL語句記錄到慢查詢日志文件中。

      配置完畢後重啟mysql服務。

      3 測試

      為了方便 我只在my.cnf中配置了慢查詢日志的路徑.

      mysql 版本為 5.1.73

      關於 long_query_time :從mysql 5.1開始,long_query_time開始以微秒記錄SQL語句運行時間,之前僅用秒為單位記錄。這樣可以更精確地記錄SQL的運行時間,供DBA分析。

      進入mysql.

      代碼如下:

      mysql> show VARIABLES like "%slow%"; #查看慢查詢日志相關的信息

      mysql> set global long_query_time=0.01; #將mysql位置的值改為 0.01

      mysql> show variables like "long_query_time"; #查看是否生效

      mysql> select sleep(2); #延遲2秒執行 注:這條sql執行完畢以後應該已經在慢查詢的日志文件中產生相關的信息記錄

      mysql> show global status like '%slow%'; #查看慢查詢語句的次數

      在日志文件中可以看到已經記錄了sql.

    mysql慢查詢使用詳解 三聯

      總結:

      Windows下開啟MySQL慢查詢

      MySQL在Windows系統中的配置文件一般是是my.ini找到[mysqld]下面加上

      log-slow-queries = F:MySQLlogmysqlslowquery.log

      long_query_time = 2

      Linux下啟用MySQL慢查詢

      MySQL在Windows系統中的配置文件一般是是my.cnf找到[mysqld]下面加上

      log-slow-queries=/data/mysqldata/slowquery.log

      long_query_time=2

      注意

      log-slow-queries = F:MySQLlogmysqlslowquery.log為慢查詢日志存放的位置,一般這個目錄要有MySQL的運行帳號的可寫權限,一般都將這個目錄設置為MySQL的數據存放目錄;

      long_query_time=2中的2表示查詢超過兩秒才記錄;

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved