數據庫的邏輯結構(簡)


數據庫內核按層次來分,就是兩層:SQL & Storage。SQL Layer負責將你輸入的SQL statement通過一系列步驟(parse/resolve/rewrite/optimize…)轉換成物理執行計划,同時負責計划的執行,執行計划通常是一顆樹的形式,其中樹的葉子節點(執行器算子)部分往往負責單表的數據操作,這些操作算子就要在storage layer來執行了。

因此,一個數據庫存儲引擎的主要工作,簡單來講就是存取數據,但是前提是保證數據庫的ACID(atomicity/consistency/isolation/durability)語義。存儲引擎對外提供的接口其實比較簡單,主要就是數據寫入/修改/查詢,事務處理(start transaction/commit/rollback…),修改schema對象/數據字典(可選), 數據統計,還有一些周邊的運維或數據導入導出功能。

僅僅從功能上來說,要實現一個存儲引擎似乎並不困難,如今也有很多Key-Value Store搖身一變就成為了數據庫存儲引擎,無非是加上一套事務處理機制罷了。但是作為數據庫的底盤,一個成熟的存儲引擎必須要考慮效率,如何高效(性能/成本最大化)的實現數據存取則成了在設計上做出種種權衡的主要考量。可以從存儲引擎的幾個主要組件來討論。

 

優秀的數據庫存儲引擎應具備哪些能力?

https://www.lastupdate.net/9390.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM