<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
很多開發同學對SQL優化如數家珍,卻對MySQL架構一知半解。豈不是隻見樹葉,不見森林,終將陷入細節中不能自拔。
今天就一塊學習MySQL分層架構,深入瞭解MySQL底層實現原理,以及每層的作用,我們常見的SQL優化到底在哪一層做了優化?
由圖中可以看到MySQL架構主要分為Server層和儲存引擎層。
Server層又分為聯結器、快取、分析器、優化器、執行器。所有跨儲存引擎的功能都在這層實現,比如:函數、儲存過程、觸發器、檢視等。
儲存引擎是可插拔式的,常見的儲存引擎有MyISAM、InnoDB、Memory等,MySQL5.5之前預設的是MyISAM,之後預設的是InnoDB。
聯結器主要用來管理使用者端的連線和使用者身份認證。
使用者端與Server端的連線採用的是TCP協定,經過TCP握手,建立連線之後,聯結器開始進行身份驗證。
> mysql -hlocalhost -P3306 -uroot -p
如果認證失敗,就會出現錯誤 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)。
可以通過 show processlist 命令檢視系統所有連線的資訊:
其中Commond列表示連線狀態,Daemon表示後臺程序,Query表示查詢,Sleep表示空閒連線。
使用者端請求不會直接去儲存引擎查詢資料,而是先在快取中查詢結果是否存在。如果結果已存在,直接返回,否則再執行一遍查詢流程,查詢結束後把結果再快取起來。
如果資料表發生更改,將清空失效快取,例如 insert、update、delete、alter操作等。
對於頻繁變更的資料表來說,快取命中率很低。使用快取反而降低了讀寫效能,所以在MySQL8.0以後就移除了快取模組。
可以通過下面命令檢視是否開啟了快取:
分析器主要對SQL語句進行詞法分析和語法分析。
首先進行詞法分析,分析出MySQL的關鍵字、以及每個詞語代表的含義。然後進行語法分析,檢測SQL語句是否符合MySQL語法要求。
MySQL通過識別字串中列名、表名、where、select/update/insert 等MySQL關鍵字,在根據語法規則判斷sql是否滿足語法,最終會生成一個抽象語法樹(AST)。
比如:SQL語句中少寫個where關鍵字,就會提示錯誤。
mysql> select * from user id=1; ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '=1' at line 1
在真正執行SQL語句之前,還需要經過優化器處理。
我們熟知的執行計劃(Explain)就是優化器生成的。
優化器主要有兩個作用:邏輯優化和物理優化。
邏輯優化主要進行等價謂詞重寫、條件化簡、子查詢消除、連線消除、語意優化、分組合並、選擇下推、索引優化查詢、表查詢替換檢視查詢、Union替換or操作等。
物理優化主要作用是通過貪婪演演算法,根據代價估算模型,估算出每種執行方式的代價。並使用索引優化表連線,最終生成查詢執行計劃。
附上MySQL優化器架構圖,可以清晰的看到優化過程:
如果想知道優化器估算結果資訊,可以通過Explain檢視,關注一燈架構,下篇文章會詳細講解Explain具體用法。
在優化器優化完SQL,並生成了執行計劃後,就會把執行計劃傳遞給執行器。
執行器呼叫儲存引擎介面,真正的執行SQL查詢。獲取到儲存引擎返回的查詢結果,並把結果返回給使用者端,至此SQL語句執行結束。
本篇文章主要帶大家瞭解了MySQL分層架構,以及每層的架構的作用。可以看出MySQL每層架構分工明確、邏輯清晰,深刻地體現了架構設計中“高內聚,低耦合”的設計思想。我們平時在做架構設計的時候,也要多學習一下這種分層架構的設計思想。
到此這篇關於MySQL架構設計思想詳解的文章就介紹到這了,更多相關MySQL架構設計內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45