自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

MySQL底層架構(gòu)大揭秘,遠不止寫SQL那么簡單!

數(shù)據(jù)庫 MySQL
在MySQL的學習研究中,存在兩個非常容易混淆的概念,即數(shù)據(jù)庫和數(shù)據(jù)庫實例。

一 、數(shù)據(jù)庫和數(shù)據(jù)庫實例

在MySQL的學習研究中,存在兩個非常容易混淆的概念,即數(shù)據(jù)庫和數(shù)據(jù)庫實例。

在MySQL中,數(shù)據(jù)庫和數(shù)據(jù)庫實例定義如下:

  • 數(shù)據(jù)庫:存儲數(shù)據(jù)的集合;
  • 數(shù)據(jù)庫實例:操作數(shù)據(jù)庫的集合。

如上定義很清楚了,數(shù)據(jù)庫是用來存儲數(shù)據(jù)的,數(shù)據(jù)庫實例是用來操作數(shù)據(jù)的

從操作系統(tǒng)的角度,數(shù)據(jù)庫實例表現(xiàn)為一個進程,對應多個線程.

在非集群數(shù)據(jù)庫架構(gòu)中,數(shù)據(jù)庫與數(shù)據(jù)庫實例存在一 一對應關(guān)系,在數(shù)據(jù)庫集群中,可能存在多個數(shù)據(jù)庫實例操作一個數(shù)據(jù)庫情況,即多對一關(guān)系。

二 、MySQL基架

對于MySQL來說,雖然經(jīng)歷了多個版本迭代,但每次的迭代,都是基于MySQL 基架的。

MySQL基架大致包括如下幾大模塊組件:

  1. MySQL向外提供的交互接口(Connectors)
  2. 管理服務組件和工具組件(Management Service & Utilities)
  3. 連接池組件(Connection Pool)
  4. SQL接口組件(SQL Interface)
  5. 查詢分析器組件(Parser)
  6. 優(yōu)化器組件(Optimizer)
  7. 緩存主件(Caches & Buffers)
  8. 插件式存儲引擎(Pluggable Storage Engines)
  9. 物理文件(File System)

 

1.MySQL向外提供的交互接口(Connectors)

Connectors組件,是MySQL向外提供的交互組件,如java,.net,php等語言可以通過該組件來操作SQL語句,實現(xiàn)與SQL的交互。

2.管理服務組件和工具組件(Management Service & Utilities)

提供對MySQL的集成管理,如備份(Backup),恢復(Recovery),安全管理(Security)等

3.連接池組件(Connection Pool)

負責監(jiān)聽對客戶端向MySQL Server端的各種請求,接收請求,轉(zhuǎn)發(fā)請求到目標模塊。

每個成功連接MySQL Server的客戶請求都會被 創(chuàng)建或分配一個線程,該線程負責客戶端與MySQL Server端的通信,接收客戶端發(fā)送的命令,傳遞服務端的結(jié)果信息等。

4.SQL接口組件(SQL Interface)

接收用戶SQL命令,如DML,DDL和存儲過程等,并將最終結(jié)果返回給用戶。

5.查詢分析器組件(Parser)

首先分析SQL命令語法的合法性,并嘗試將SQL命令分解成數(shù)據(jù)結(jié)構(gòu),若分解失敗,則提示SQL語句不合理。

6.優(yōu)化器組件(Optimizer)

對SQL命令按照標準流程進行優(yōu)化分析。

7.緩存主件(Caches & Buffers)

緩存和緩沖組件

8.MySQL存儲引擎

1.什么是MySQL存儲引擎?

MySQL屬于關(guān)系型數(shù)據(jù)庫,而關(guān)系型數(shù)據(jù)庫的存儲是以表的形式進行的,對于表的創(chuàng)建,數(shù)據(jù)的存儲,檢索,更新等都是由MySQL存儲引擎完成的,這也是MySQL存儲引擎在MySQL中扮演的重要角色。

研究過SQL Server和Oracle的讀者可能很清楚,這兩種數(shù)據(jù)庫的存儲引擎只有一個,而MySQL的存儲引擎種類比較多,如MyISAM存儲 引擎,InnoDB存儲引擎和Memory存儲引擎.

MySQL之所以有多種存儲引擎,是由MySQL的開源性決定的。 MySQL存儲引擎從種類上來說,大致可歸結(jié)為官方存儲引擎和第三方存儲引起。

MySQL的開源性,允許第三方基于MySQL骨架,開發(fā)適合自己業(yè)務需求的存儲引擎。

2.MySQL存儲引擎作用

MySQL存儲引擎在MySQL中扮演重要角色,其作比較重要作用,大致歸結(jié)為如下兩方面:

作用一 :管理表創(chuàng)建,數(shù)據(jù)檢索,索引創(chuàng)建等

作用二 :滿足自定義存儲引擎開發(fā)。

3.MySQL引擎種類

不同種類的存儲引擎,在存儲表時的存儲引擎表機制也有所不同,從MySQL存儲引擎種類上來說,可以分為官方存儲引擎和第三方存儲引擎。

當前,也存在多種MySQL存儲引擎,如MyISAM存儲引擎,InnoDB存儲引擎,NDB存儲引擎,Archive存儲引擎,F(xiàn)ederated存儲引擎,Memory 存儲引擎,Merge存儲引擎,Parter存儲引擎,Community存儲引擎,Custom存儲引擎和其他存儲引擎。

其中,比較常用的存儲引擎包括InnoDB存儲引擎,MyISAM存儲引擎和Momery存儲引擎。

4.幾種典型MySQL存儲引擎比較

 

9.物理文件(File System)

實際存儲MySQL 數(shù)據(jù)庫文件和一些日志文件等的系統(tǒng),如Linux,Unix,Windows等。

三、一個查詢流程圖

 

責任編輯:龐桂玉 來源: 今日頭條
相關(guān)推薦

2015-10-09 09:52:07

視覺設計好看

2022-02-28 10:23:37

搜索競價排名

2015-10-27 18:27:52

中科曙光技術(shù)控

2023-11-08 14:45:14

AIGC生成式人工智能

2018-08-02 15:36:08

2013-11-25 09:27:08

大數(shù)據(jù)即服務大數(shù)據(jù)分析大數(shù)據(jù)服務

2018-03-29 09:22:06

Facebook數(shù)據(jù)app

2023-06-05 18:25:52

物聯(lián)網(wǎng)大數(shù)據(jù)

2013-11-07 16:49:09

微軟Bing必應

2014-03-03 11:34:55

MWC

2020-06-11 17:15:31

區(qū)塊鏈金融數(shù)字貨幣

2020-10-28 13:56:07

數(shù)據(jù)科學編碼數(shù)據(jù)分析

2021-11-15 15:45:46

5G制造5G物聯(lián)網(wǎng)

2023-11-03 17:21:05

DevOps人工智能

2020-06-23 15:00:45

AI人工智能遠程辦公

2021-10-14 09:52:53

Dockerfile鏡像容器

2024-10-08 15:16:23

SQL地鐵換乘數(shù)據(jù)庫

2010-06-13 16:04:14

MySQL三種安裝方式

2021-07-30 16:17:26

勒索軟件漏洞網(wǎng)絡攻擊
點贊
收藏

51CTO技術(shù)棧公眾號