久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

Mysql邏輯架構的示例分析

149次閱讀
沒有評論

共計 1508 個字符,預計需要花費 4 分鐘才能閱讀完成。

丸趣 TV 小編給大家分享一下 Mysql 邏輯架構的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

1. 整體架構圖

和其它數據庫相比,MySQL 有點與眾不同,它的架構可以在多種不同場景中應用并發揮良好作用。主要體現在存儲引擎的架構上,插件式的存儲引擎架構將查詢處理和其它的系統任務以及數據的存儲提取相分離。這種架構可以根據業務的需求和實際需要選擇合適的存儲引擎。

各層介紹:

1.1 連接層

最上層是一些客戶端和連接服務,包含本地 sock 通信和大多數基于客戶端 / 服務端工具實現的類似于 tcp/ip 的通信。主要完成一些類似于連接處理、授權認證、及相關的安全方案。在該層上引入了線程池的概念,為通過認證安全接入的客戶端提供線程。同樣在該層上可以實現基于 SSL 的安全鏈接。服務器也會為安全接入的每個客戶端驗證它所具有的操作權限。

1.2 服務層

1.3. 引擎層

存儲引擎層,存儲引擎真正的負責了 MySQL 中數據的存儲和提取,服務器通過 API 與存儲引擎進行通信。不同的存儲引擎具有的功能不同,這樣我們可以根據自己的實際需要進行選取。

1.4. 存儲層

數據存儲層,主要是將數據存儲在運行于裸設備的文件系統之上,并完成與存儲引擎的交互。

2. show profile

利用 show profile 可以查看 sql 的執行周期!

2.1 開啟 profile

查看 profile 是否開啟:show variables  like %profiling%

如果沒有開啟,可以執行 set profiling= 1 開啟!

2.2 使用 profile

執行 show prifiles 命令,可以查看最近的幾次查詢。

根據 Query_ID, 可以進一步執行 show profile cpu,block io for query Query_id 來查看 sql 的具體執行步驟。

2.3 大致的查詢流程

mysql 的查詢流程大致是:

mysql 客戶端通過協議與 mysql 服務器建連接,發送查詢語句,先檢查查詢緩存,如果命中,直接返回結果,否則進行語句解析, 也就是說,在解析查詢之前,服務器會先訪問查詢緩存 (query cache)——它存儲 SELECT 語句以及相應的查詢結果集。如果某個查詢結果已經位于緩存中,服務器就不會再對查詢進行解析、優化、以及執行。它僅僅將緩存中的結果返回給用戶即可,這將大大提高系統的性能。

語法解析器和預處理:首先 mysql 通過關鍵字將 SQL 語句進行解析,并生成一顆對應的“解析樹”。mysql 解析器將使用 mysql 語法規則驗證和解析查詢;預處理器則根據一些 mysql 規則進一步檢查解析數是否合法。

查詢優化器當解析樹被認為是合法的了,并且由優化器將其轉化成執行計劃。一條查詢可以有很多種執行方式,最后都返回相同的結果。優化器的作用就是找到這其中最好的執行計劃。。

然后,mysql 默認使用的 BTREE 索引,并且一個大致方向是: 無論怎么折騰 sql,至少在目前來說,mysql 最多只用到表中的一個索引。

2.4 SQL 的執行順序

手寫的順序:

真正執行的順序:

隨著 Mysql 版本的更新換代,其優化器也在不斷的升級,優化器會分析不同執行順序產生的性能消耗不同而動態調整執行順序。下面是經常出現的查詢順序:

2.5 MyISAM 和 InnoDB

show engines: 查看所有的數據庫引擎

show variables like %storage_engine% 查看默認的數據庫引擎

Mysql 邏輯架構的示例分析

以上是“Mysql 邏輯架構的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注丸趣 TV 行業資訊頻道!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-08-04發表,共計1508字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 阜新| 句容市| 巨鹿县| 盐池县| 三原县| 永丰县| 灵璧县| 尖扎县| 环江| 呈贡县| 屏边| 罗平县| 泌阳县| 松阳县| 历史| 湄潭县| 高唐县| 乡宁县| 兴文县| 云霄县| 阿拉尔市| 雷波县| 任丘市| 平果县| 卓资县| 阳东县| 西盟| 叶城县| 瑞安市| 无棣县| 宜城市| 雅江县| 承德市| 临安市| 姜堰市| 高尔夫| 东城区| 仁怀市| 驻马店市| 西丰县| 满城县|