濮阳杆衣贸易有限公司

主頁 > 知識庫 > Mysql邏輯架構詳解

Mysql邏輯架構詳解

熱門標簽:南昌高頻外呼系統(tǒng)哪家公司做的好 淄博400電話申請 電話機器人市場趨勢 電銷機器人 行業(yè) 百度地圖標注后不顯示 昆明電信400電話辦理 電銷機器人各個細節(jié)介紹 溫州瑞安400電話怎么申請 俄國地圖標注app

1. 整體架構圖

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

各層介紹:

1.1 連接層

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

1.2 服務層

1.3.引擎層

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

1.4.存儲層

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

2. show profile

利用show profile可以查看sql的執(zhí)行周期!

2.1 開啟profile

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

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

2.2 使用profile

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

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

2.3 大致的查詢流程

mysql的查詢流程大致是:

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

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

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

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

2.4 SQL的執(zhí)行順序

手寫的順序:

真正執(zhí)行的順序:

隨著Mysql版本的更新?lián)Q代,其優(yōu)化器也在不斷的升級,優(yōu)化器會分析不同執(zhí)行順序產生的性能消耗不同而動態(tài)調整執(zhí)行順序。下面是經常出現(xiàn)的查詢順序:

2.5 MyISAM和InnoDB

show engines:查看所有的數(shù)據(jù)庫引擎

show variables like '%storage_engine%' 查看默認的數(shù)據(jù)庫引擎

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。如果你想了解更多相關內容請查看下面相關鏈接

您可能感興趣的文章:
  • MySQL雙主(主主)架構配置方案
  • 深入了解Mysql邏輯架構
  • MySQL 整體架構介紹
  • MySQL20個高性能架構設計原則(值得收藏)
  • MySQL 4種常用的主從復制架構
  • MySQL 學習總結 之 初步了解 InnoDB 存儲引擎的架構設計
  • MySQL架構體系知識點總結
  • MySQL數(shù)據(jù)庫體系架構詳情

標簽:拉薩 甘南 洛陽 吐魯番 嘉峪關 葫蘆島 安徽

巨人網(wǎng)絡通訊聲明:本文標題《Mysql邏輯架構詳解》,本文關鍵詞  Mysql,邏輯,架構,詳解,Mysql,;如發(fā)現(xiàn)本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Mysql邏輯架構詳解》相關的同類信息!
  • 本頁收集關于Mysql邏輯架構詳解的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    孟津县| 宝坻区| 长治县| 大足县| 金平| 尚志市| 太仓市| 丰镇市| 左权县| 根河市| 吉林市| 龙海市| 阳高县| 大英县| 盐城市| 澜沧| 农安县| 贵阳市| 建湖县| 梁河县| 赤峰市| 荆门市| 通江县| 达尔| 额敏县| 淳化县| 清涧县| 晋州市| 凤台县| 荣成市| 奉化市| 高清| 酒泉市| 凤山县| 十堰市| 新田县| 精河县| 繁峙县| 茂名市| 宁夏| 内黄县|