MySQL慢查詢&執行計划


參考文章:

https://blog.csdn.net/tiantianw/article/details/53334566

http://www.cnblogs.com/luyucheng/p/6265594.html

網上開啟慢查詢:

在[my.ini]中添加如下信息:

[mysqld]

log-slow-queries="C:/ProgramFiles/MySQL/MySQL Server 5.5/log/mysql-slow.log"

long_query_time = 4

log-queries-not-using-indexes

 

解釋:

log-slow-queries:代表MYSQL慢查詢的日志存儲目錄,此目錄文件一定要有寫權限;

Windows下需要寫絕對路徑,如:log-slow-queries="C:/Program Files/MySQL/MySQL Server5.5/log/mysql-slow.log"

long_query_time: 最長執行時間 (查詢的最長時間,超過了這個時間則記錄到日志中) .

log-queries-not-using-indexes:沒有使用到索引的查詢也將被記錄在日志中

配置好以后重新啟動MYSQL服務.

個人嘗試:

1.獲取當前變量信息,命令是

  show variables like 'slow_query%';

        

  slow_query_log on即表示開啟記錄慢sql

  slow_query_log_file文件位置

      

  long_query_time總執行時間

2.更改配置信息
  set global slow_query_log='ON';   //開啟記錄慢sql
  set global slow_query_log_file='D:/php_dev/MySQL/MySQL Server 5.5/log/slow_query.log';    //win操作系統,這個參數需要絕對路徑
  set global long_query_time=1;    //設置慢查詢時間為1秒


3.如果有超出指定時間的sql,就會把sql相關信息寫入
  D:/php_dev/MySQL/MySQL Server 5.5/log/slow_query.log這個文件

4.文件格式如下:

  # Time: 190429 16:42:25
  # User@Host: root[root] @ localhost [127.0.0.1]
  # Query_time: 0.062400 Lock_time: 0.000000 Rows_sent: 1003 Rows_examined: 1003
  SET timestamp=1556527345;
  SELECT * FROM TEACHING_SYSTEM_STUDENT;

 

 

執行計划:

直接命令執行

  explain

  select * from student;

  

  字段key判斷是否使用到了索引


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM