Architecture
究竟什麼是數據庫引擎?
我已經多次瀏覽了http://en.wikipedia.org/wiki/Database_engine上的定義:
數據庫引擎(或“儲存引擎”)是數據庫管理系統 (DBMS) 用於從數據庫創建、讀取、更新和刪除(CRUD) 數據的底層軟體組件。
我不明白的是剩下要做的事情,數據庫所做的不就是 CRUD 嗎?
如果數據庫引擎執行這些功能,那麼數據庫的其餘部分會做什麼?
CRUD 旨在定義與持久儲存相關的數據庫所需的特徵。它並不是要描述數據庫引擎可以完成的所有事情。
為了進行比較,從根本上說,車輛是用於運輸的設備。雖然是真的,但這個定義肯定不包括現代汽車所需的所有細節。
數據庫引擎可能會處理多個使用者、事務、MVCC(多版本並發控制)、緩衝區和記憶體、ACID(原子性、一致性、隔離性、持久性)以及不同的隔離級別。讀取可以從記憶體、遠端數據庫和磁碟上的多個表中提取數據,使用 SQL 通過多個顯式和/或隱式程式碼路徑對其進行處理,以便將其呈現給請求應用程序。創建可以分配儲存、提供結構、分配值,並在儲存數據之前進行自己的處理。等等。