MySQL外掛程式式儲存引擎是MySQL資料庫伺服器中的組件,負責為資料庫執行實際的資料I/O操作,並能允許和強制執行面向特殊應用需求的特定特性集合。使用特殊儲存引擎的主要優點之一在於,僅需提供特殊應用所需的特性,因此,資料庫中的系統開銷較小,最終結果具有更有效和更高的資料庫效能。這也是MySQL被始終視為具有高效能的原因之一,在行業標準基準方面,它能匹敵或擊敗專有的整體式資料庫。
從技術角度上看,在儲存引擎中,一些獨特的支援底層結構的組件是什麼呢?一些關鍵差別包括:
·並發性:某些應用程式比其他應用程式具有很多的顆粒級鎖定要求(如行級鎖定)。選擇正確的鎖定策略能夠減少開銷,並有助於整體效能的提升。它還包括對多種能力的支援,如多版本並發性控制或“快照”讀取等。
·事務支援:並非所有的應用程式都需要事務,但對的確需要事務的應用程式來說,有著定義良好的需求,如ACID相容等。
·參考完整性:通過DDDL定義的 外鍵,伺服器需要強制保持關聯資料庫的參考完整性。
·實體儲存體:它包括各種各樣的事項,從表和索引的總的頁大小,到儲存資料所需的格式,到物理磁碟。
·索引支援:不同的應用程式傾向於採用不同的索引策略,每種儲存引擎通常有自己的編製索引方法,但某些索引方法(如B-tree索引)對幾乎所有的儲存引擎來說是共同的。
·記憶體高速緩衝:與其他應用程式相比,不同的應用程式對某些記憶體高速緩衝策略的響應更好,因此,儘管某些記憶體高速緩衝對所有儲存引擎來說是共同的(如用於使用者串連的高速緩衝,MySQL的高速查詢高速緩衝等),其他高速緩衝策略僅當使用特殊的儲存引擎時才唯一定義。
·效能協助:包括針對並行操作的多I/O線程,線程並發性,資料庫檢查點,成批插入處理等。
·其他目標特性:可能包括對地理空間操作的支援,對特定資料處理操作的安全限制等。
每組外掛程式式儲存引擎基本組件均採用了相應的設計,能夠為特定應用提供可選擇的特性集合。從反面角度看,避免使用組件特性集合有助於避免不必要的開銷。因此,顯而易見,應理解特定應用程式的需求集合,並選擇恰當的能大幅度改善系統整體效率和效能的MySQL儲存引擎。