# 臨時開啟慢日誌(如重啟資料庫,還會改為預設值off,如需永久改需要修改配置檔案)
show variables like '%slow_query_log%' ;(如果查詢出的值為off則需要開啟慢日誌)
set global slow_query_log=on;(開啟慢日誌)
# 設定1秒以上為慢查詢(如重啟資料庫,還會改為預設值off,如需永久改需要修改配置檔案)
show variables like '%long_query_time%' ;(預設值為10,需要將該值改低一些,使得慢sql可以被檢測出來)
set global long_query_time=1;
# 檢視相關設定是否已經生效
show variables like '%slow_query_log%' ;
# 如果使用圖形化工具連線mysql,修改屬性值沒有生效,則重啟該工具再查詢慢查詢時間
show variables like '%long_query_time%' ;
# 慢查詢次數
show status like '%slow_queries%';
# 呼叫介面等方法執行慢sql
# 慢查詢次數會增加
show status like '%slow_queries%';
# 檢視日誌檔案檔案位置,檢視詳細資訊
show variables like '%slow_query_log_file%' ;
# 根據日誌檔案位置,找到日誌檔案並開啟
#根據日誌裡查詢出的sql,在sql前面加上explain並執行
#例 explain select * from table
當type為index/all 則代表有全表掃瞄,需要注意是否可以不全表掃瞄
key表示用了哪個字段作為索引
當extra 為using index則代表走了索引,當extra為using filesort或using temporary時,則需要進行優化
# 分析sql語句,注意表關聯的字段是否是索引,如果不是索引,並且表資料量大,則sql執行慢
# 需要加索引的加索引,需要更改表關聯欄位的改關聯字段
sql語句查詢慢原因
1 沒有索引或者沒有用到索引 這是查詢慢最常見的問題,是程式設計的缺陷 2 i o吞吐量小,形成了瓶頸效應。3 沒有建立計算列導致查詢不優化。4 記憶體不足 5 網路速度慢 6 查詢出的資料量過大 可以採用多次查詢,其他的方法降低資料量 7 鎖或者死鎖 這也是查詢慢最常見的問題,是程式設計的缺陷 8...
查詢MySQL中查詢慢的SQL語句的方法
1 通過查詢日誌 1 windows下開啟mysql慢查詢 mysql在windows系統中的配置檔案一般是是my.ini找到 mysqld 下面加上 如下 log slow queries f mysql log mysqlslowquery。log long query time 2 2 lin...
如何查詢MySQL中查詢慢的SQL語句並優化
在mysql中,支援慢日誌記錄功能,通過指定統計執行時間閾值與日誌存放位置來實現 mysql預設統計時間為10s,而且預設統計是關閉的,那麼如何開啟統計呢?這裡分為兩種情況 第一種情況是在mysql ini配置檔案中新增鍵和值,通常適用於從資料庫啟動即開啟統計日誌 第二種情況是在不適合關閉伺服器而臨...