乾貨:阿里大牛淺談MySQL架構體系
一 : 資料庫和資料庫例項
在MySQL的學習研究中,存在兩個非常容易混淆的概念,即資料庫和資料庫例項。在MySQL中,資料庫和資料庫例項定義如下:
資料庫:儲存資料的集合;
資料庫例項:運算元據庫的集合。
如上定義很清楚了,資料庫是用來儲存資料的,資料庫例項是用來運算元據的,從作業系統的角度,資料庫例項表現為一個程式,對應多個執行緒,
在非叢集資料庫架構中,資料庫與資料庫例項存在一 一對應關係,在資料庫叢集中,可能存在多個資料庫例項操作一個資料庫情況,即多對一關係。
二: MySQL基架
對於MySQL來說,雖然經歷了多個版本迭代(MySQL5.5,MySQL 5.6,MySQL 5.7,MySQL 8),但每次的迭代,都是基於MySQL
基架的,MySQL基架大致包括如下幾大模組元件:
(1)MySQL向外提供的互動介面(Connectors)
(2)管理服務元件和工具元件(Management Service & Utilities)
(3)連線池元件(Connection Pool)
(4)SQL介面元件(SQL Interface)
(5)查詢分析器元件(Parser)
(6)最佳化器元件(Optimizer)
(7)快取主件(Caches & Buffers)
(8)外掛式儲存引擎(Pluggable Storage Engines)
(9)物理檔案(File System)
(一)MySQL向外提供的互動介面(Connectors)
Connectors元件,是MySQL向外提供的互動元件,如java,.net,php等語言可以透過該元件來操作SQL語句,實現與SQL的互動。
(二)管理服務元件和工具元件(Management Service & Utilities)
提供對MySQL的整合管理,如備份(Backup),恢復(Recovery),安全管理(Security)等
(三)連線池元件(Connection Pool)
負責監聽對客戶端向MySQL Server端的各種請求,接收請求,轉發請求到目標模組。每個成功連線MySQL Server的客戶請求都會被
建立或分配一個執行緒,該執行緒負責客戶端與MySQL Server端的通訊,接收客戶端傳送的命令,傳遞服務端的結果資訊等。
(四)SQL介面元件(SQL Interface)
接收使用者SQL命令,如DML,DDL和儲存過程等,並將最終結果返回給使用者。
(五)查詢分析器元件(Parser)
首先分析SQL命令語法的合法性,並嘗試將SQL命令分解成資料結構,若分解失敗,則提示SQL語句不合理。
(六)最佳化器元件(Optimizer)
對SQL命令按照標準流程進行最佳化分析。
(七)快取主件(Caches & Buffers)
快取和緩衝元件
(八)MySQL儲存引擎
1.什麼是MySQL儲存引擎
MySQL屬於關係型資料庫,而關係型資料庫的儲存是以表的形式進行的,對於表的建立,資料的儲存,檢索,更新等都是由MySQL
儲存引擎完成的,這也是MySQL儲存引擎在MySQL中扮演的重要角色。
研究過SQL Server和Oracle的讀者可能很清楚,這兩種資料庫的儲存引擎只有一個,而MySQL的儲存引擎種類比較多,如MyISAM儲存
引擎,InnoDB儲存引擎和Memory儲存引擎.
MySQL之所以有多種儲存引擎,是因為MySQL的開源性決定的。MySQL儲存引擎,從種類上來說,大致可歸結為官方儲存引擎和第三
方儲存引起。MySQL的開源性,允許第三方基於MySQL骨架,開發適合自己業務需求的儲存引擎。
2.MySQL儲存引擎作用
MySQL儲存引擎在MySQL中扮演重要角色,其作比較重要作用,大致歸結為如下兩方面:
作用一:管理表建立,資料檢索,索引建立等
作用二:滿足自定義儲存引擎開發。
3.MySQL引擎種類
不同種類的儲存引擎,在儲存表時的儲存引擎表機制也有所不同,從MySQL儲存引擎種類上來說,可以分為官方儲存引擎和第三方儲存引擎。
當前,也存在多種MySQL儲存引擎,如MyISAM儲存引擎,InnoDB儲存引擎,NDB儲存引擎,Archive儲存引擎,Federated儲存引擎,Memory
儲存引擎,Merge儲存引擎,Parter儲存引擎,Community儲存引擎,Custom儲存引擎和其他儲存引擎。
其中,比較常用的儲存引擎包括InnoDB儲存引擎,MyISAM儲存引擎和Momery儲存引擎。
4.幾種典型MySQL儲存引擎比較
(九)物理檔案(File System)
實際儲存MySQL 資料庫檔案和一些日誌檔案等的系統,如Linux,Unix,Windows等。
三 :一個查詢流程圖
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69912582/viewspace-2649007/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 淺談Android os體系架構Android架構
- 乾貨分享:淺談記憶體洩露記憶體洩露
- 乾貨:軟體架構詳解架構
- 乾貨 | 廣告系統架構解密架構解密
- 乾貨:軟體架構分析詳解架構
- 淺談MySQL叢集高可用架構MySql架構
- MySQL體系架構MySql架構
- InnoDB架構淺談架構
- 淺談Dubbo架構架構
- 乾貨 | 攜程線上風控系統架構架構
- 阿里大牛實戰歸納——Kafka架構原理阿里Kafka架構
- 【乾貨】MySQL底層架構設計,你瞭解多少?MySql架構
- 乾貨|雲中漫步-淺談雲端計算
- Mongodb架構設計淺談MongoDB架構
- 談談公司中研發體系的架構架構
- 乾貨帖 | TDSQL-A核心架構揭秘SQL架構
- 淺談JVM整體架構與調優引數JVM架構
- [原創] 淺談ETL系統架構如何測試?架構
- 乾貨|資料中臺安全體系構建方法論
- 阿里P8級架構師淺談Java架構師的工作都幹些什麼?阿里架構Java
- 架構之:軟體架構漫談架構
- 乾貨 | 攜程圖片服務架構架構
- 乾貨:mysql索引的資料結構MySql索引資料結構
- 淺談大型分散式Web系統的架構演進分散式Web架構
- 淺談大型網站動態應用系統架構網站架構
- 乾貨|淺談iOS端短影片SDK技術實現iOS
- WebRTC 之ICE淺談 | 內有乾貨免費下載Web
- 一文搞懂MySQL體系架構!!MySql架構
- 淺談網路架構及其演變架構
- 淺談hdfs架構與資料流架構
- 淺談:服務架構進化論架構
- 淺談Web架構之演化過程Web架構
- 淺談遊戲體驗構建遊戲
- 阿里支付寶架構師:談談我眼中的高併發架構【好文】阿里架構
- MySql架構原理(MySql從淺入深 一)MySql架構
- Underscore 整體架構淺析架構
- 阿里架構師帶你深入淺出jvm阿里架構JVM
- 【淺談架構14/100】架構的緣起與目標架構