MySQL執(zhí)行時間的查詢
上一節(jié)我們介紹了MySQL的索引,用于提高查詢效率。那么我們應該優(yōu)化哪些庫的哪些sql呢?
答案1:肯定是查詢頻繁的數據庫和查詢執(zhí)行時間長的sql。現在我們一一來解決這個問題。
- 首先如何判斷一個數據庫是否是查詢頻繁呢?
我們可以看它的狀態(tài)信息
SHOW GLOBAL STATUS LIKE 'Com_______';
我們主要關注:
- Com_delete: 刪除次數
- Com_insert: 插入次數
- Com_select: 查詢次數
- Com_update: 更新次數
通過上述指令,我們可以查看到當前數據庫到底是以查詢?yōu)橹?,還是以增刪改為主,從而為數據 庫優(yōu)化提供參考依據。 如果是以增刪改為主,我們可以考慮不對其進行索引的優(yōu)化。 如果是以 查詢?yōu)橹?,那么就要考慮對數據庫的索引進行優(yōu)化了。
我們又該如何定位針對于那些查詢語句進行優(yōu)化呢? 我們可以借助于慢查詢日志。
慢查詢日志
慢查詢日志記錄了所有執(zhí)行時間超過指定參數(long_query_time,單位:秒,默認10秒)的所有 SQL語句的日志。
MySQL的慢查詢日志默認沒有開啟,我們可以查看一下系統變量 slow_query_log = off
可以通過在配置文件最后增加這兩個配置信進行打開,并且查詢時長不能超過2秒。
# 開啟MySQL慢日志查詢開關 slow_query_log=1 # 設置慢日志的時間為2秒,SQL語句執(zhí)行時間超過2秒,就會視為慢查詢,記錄慢查詢日志 long_query_time=2
配置完畢之后,通過以下指令重新啟動MySQL服務器進行測試,查看慢日志文件中記錄的信息
然后,再次查看開關情況,慢查詢日志就已經打開了。
測試
執(zhí)行如下Sql,一個查詢耗時0.00033秒,一個耗時13.35秒
我們之前打開過檢查慢查詢日志。
最終我們發(fā)現,在慢查詢日志中,只會記錄執(zhí)行時間超多我們預設時間(2s)的SQL,執(zhí)行較快的SQL 是不會記錄的
然后在實際開發(fā)中,我們也會出現這個問題,我們寫的SQL邏輯并不復雜卻執(zhí)行了1.9s,這個sql就不會被慢查詢日志記錄,但是我們也應該對其進行優(yōu)化。
profile
- show profiles 能夠在做SQL優(yōu)化時幫助我們了解時間都耗費到哪里去了。
- 通過have_profiling 參數,能夠看到當前MySQL是否支持profile操作:
設置打開。
SET profiling = 1
開關已經打開了,接下來,我們所執(zhí)行的SQL語句,都會被MySQL記錄,并記錄執(zhí)行時間消耗到哪兒去 了。 我們直接執(zhí)行如下的SQL語句:
select * from tb_user; select * from tb_user where id = 1; select * from tb_user where name = '白起'; select count(*) from tb_sku;
查看每一條SQL的耗時情況:
到這里,我們就可以結合慢查詢日志和profile來輔助分析sql的具體執(zhí)行時間。
總結
- 慢sql查詢日志修改配置文件,打開慢查詢日志和記錄sql執(zhí)行的最長時間。
- profile記錄每條sql的執(zhí)行時間,需要進行設置set profiling = 1;
到此這篇關于MySQL執(zhí)行時間的查詢的文章就介紹到這了,更多相關MySQL時間的查詢內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
mysql數據庫decimal類型與decimal長度用法詳解
在MySQL中decimal是一種用于存儲精確數字的數據類型,下面這篇文章主要給大家介紹了關于mysql數據庫decimal類型與decimal長度用法的相關資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2024-01-01Mysql數據庫報錯2003?Can't?connect?to?MySQL?server?on?
最近在用mysql,打開mysql的圖形化界面要連接時出現2003錯誤,所以下面這篇文章主要給大家介紹了關于Mysql數據庫報錯2003?Can't?connect?to?MySQL?server?on?'localhost'?(10061)的解決方式,需要的朋友可以參考下2022-09-09Mysql| 使用通配符進行模糊查詢詳解(like,%,_)
這篇文章主要介紹了Mysql| 使用通配符進行模糊查詢詳解(like,%,_),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-08-08