MySQL體系結構瞭解

1.MySQL體系結構

瞭解MySQL體系結構圖,她由SQL接口,解析器,優化器,緩存,存儲引擎組成的



概念描述:
Connectors:與客戶端應用程序建立連接的數據庫接口

Management Services & Utilities:系統管理和服務相關輔助工具

Connection Pool:負責處理和用戶訪問有關的各種用戶登錄,線程處理,內存和進程緩存需求

SQL Interface:接受用戶SQL命令,並把結果返回給客戶端,如select..from..調用SQL Interface

Parser:解析器
SQL命令傳遞到解析器時會被解析器驗證和解析
功能:
對SQL語句進行語法分析和解析,構造一個用來執行查詢的數據結構,以後SQL語句傳遞和處理基於這個結構
若在分解中遇到錯誤,表示該SQL語句不合理

Optimizer:優化查詢語句,以保證數據檢索動作的效率達到或很接近最優。使用一種"選取->投影->聯接"
策略來處理查詢,即先根據有關的限制條件進行選取(select操作)以減少將要處理的元組個數,再進行投
影以減少被選取元組的屬性字段個數,根據前2個條件聯接起來生成查詢結果。
如:select id,name from profile where id=1;
a.select操作:根據where語句進行選取,而不是將全表全部查詢以後再進行id過濾
b.投影操作:在select操作基礎上把id和name進行屬性投影,而不是將所有屬性取出來再進行過濾
c.將a&b 2個查詢條件聯接起來生成最終查詢結果

Cache和Buffer:cache讀,Buffer寫
若查詢緩存有命中的查詢結果,查詢語句就可以直接查詢緩存中取數據
這個緩存機制由一系列小緩存組成的,如:表緩存,記錄緩存,key緩存,權限緩存,host名緩存等

2.MySQL存儲引擎--InnoDB
a.支持事務
b.行鎖,提供併發性,支持MVCC--多版本併發控制
c.支持外鍵,保證數據完整性
d.獨立ibd文件存放表和索引數據,insert buffer和事務undo信息
e.特性:insert buffer/double write/adaptive hash index/read ahead
f.內存結構組成:innodb_buffer_pool + innodb_log_buffer + innodb_additional_mem_pool
g.buffer_pool(緩衝池):data page,index page,insert buffer,adaptive hash index,lock info,DD
h.插入緩衝(insert buffer):提供輔助索引的插入和更新性能,先判斷是否在緩衝池,若在,則直接插入索引頁,

否則先插入緩衝池,而後再定期合併插入索引頁



i.二次寫(double write):內存doublewrite buffer(2M)和物理磁盤上共享表空間(連續64個頁)

j.多版本併發控制(MVCC):
.原理:在事務中保存數據快照,在一個事務裏能看到數據一致的視圖,而不用擔心這個事務運行多長時間,同時在同一
時刻不同事務看到相同表中的數據可能不同。
.特徵:每行數據都存在一個版本,每次數據更新時都更新該版本,修改時copy出,當前版本隨意修改,各事務之間無干擾,
保存時比較版本號,若成功(commit),則覆蓋原紀錄;失敗則放棄copy(rollback)
k.一致性非鎖定讀:
.指innodb通過mvcc技術的方式來讀取數據庫中的數據,若讀取的數據正在進行delete或update,這時讀取操作不會因此等待
行上的鎖釋放,而會去讀取行的一個快照(這個是保存在undo中該行的數據),快照沒有額外的開銷且讀取快照不需要加鎖
.提高數據讀取的併發性,在innodb中,讀取不會佔用和等待表上的鎖

3.MySQL存儲引擎--MyISAM
a.不支持事務
b.表鎖
c.全文索引
d.存儲表由MYD和MYI組成,分別存放數據和索引
e.使用數據壓縮和索引優化
f.特點:可靠性高,適用範圍廣,檢索速度快

4.MySQL存儲引擎--Memory
a.表數據存放在內存中
b.hash index
c.一個.frm擴展名指定它存儲表的定義
d.特點:服務器重啓時,memory表裏數據全部丟失
e.只支持表鎖,併發性差
f.不支持text和blob類型
g.按照固定長存儲變長字段(varchar)數據
h.高速度,低延遲,不適合頻繁寫
k.存儲臨時數據

5.MySQL存儲引擎--Archive
a.提供高速插入和壓縮功能
b.特點:
.只支持insert和select操作
.行鎖來實現高併發insert操作
.不支持事務
.採用zlib算法壓縮存儲,壓縮比1:10
c.存儲歸檔數據,如日誌信息

5.MySQL存儲引擎--MariaDB
a.取代MyISAM
b.特點:
.緩存數據和索引數據
.行鎖
.MVCC功能
.支持事務和非事務



發佈了20 篇原創文章 · 獲贊 0 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章