我們知道,mysql伺服器接收到乙個請求資料的請求是要經歷以下幾個步驟的:
1.聯結器-----校驗使用者的資訊,控制使用者的連線。
2.分析器-----對客戶端發過來的sql進行詞法分析,語法分析。
3.優化器-----通過msql內建的優化器,優化sql語句,規定語句的執行流程,順帶提一句,優化器有兩種,基於規則的優化器(rbo)與基於代價的優化器(cbo)
rbo: rule-based optimization 基於規則的優化器
cbo: cost-based optimization 基於代價的優化器
4.執行器-----sql語句的實際執行者。
由於sql語句的執行需要經過以上幾個步驟,那麼要對一條sql進行優化,我們首先需要知道sql經歷上面這些步驟時哪乙個或哪些步驟比較慢。今天先來了解一些msql自帶的小工具,了解這些資訊。
先來乙個小案例:
什麼!select * from user; 執行這條sql查詢到3條資料,耗時0.00 sec,查詢查詢這3條資料沒有消耗一點時間?怎麼可能!
執行 set profiling = 1;
然後再次執行該查詢語句,然後通過 show profiles 就可以看到這條語句的耗時資訊了
如果執行了很多sql,通過show profiles 命令可以檢視到多條sql的執行時間
執行show profile檢視的是最近的一條sql的執行資訊,這時可以通過
show profile for query query_id來檢視制定sql的執**況。
同時可以通過新增cpu等茶樹檢視指定資訊(cpu、block io等),如:
當然,也可以通過all來檢視所有資訊:
show profile命令更多詳細資訊見mysql官網 mysql官網-show profile
當然,官網也說明了,show prfoile、show profiles可能在將來的版本被棄用,建議使用新的performance schema,詳見 mysql官網-performance schema
相較於show prfoile、show profiles,performance schema提供了更加詳細全面的監控,想要進一步了解performance schema的可以參考mysql官網。今天這篇文章就到這裡,下篇開始我們將詳細介紹使用mysql過程中需要注意的一些小細節。
vc 從頭學起 第一天
大三了,自學過不少的東西,卻從來沒有想過要分享一下,可能是太忙,沒有時間,呵呵。自學過挺多東西,卻從來沒有接觸過c 人家說聰明的程式設計師學delphi,真正的程式設計師學c,前面的可能過時了,後面的卻似乎還有一定的份量。關於學習c 還有乙個原因就是最近要參加齊魯軟體大賽,我們專案組要做乙個電子寵物...
mysql 效能監控
show status flush status 檢視當前連線數 show status like thread thread cached 被快取的執行緒的個數 thread running 處於啟用狀態的執行緒的個數 thread connected 當前連線的執行緒的個數 thread cre...
mysql效能監控
使用mysql不僅僅需要能簡單的crud,還需要進行效能調優,不管是工作中還是去面試這都比較重要,要想學會mysql調優首先得學會監控mysql的效能,不多說廢話,直接開幹 mysql是自帶監控工具的,有的版本可能預設開啟,有的可能關閉的,所以首先檢查profiling是否開啟 如上profilin...