就像飛機和火箭中的引擎一樣,儲存引擎是資料庫中非常關鍵的組成部分。顯然不行,因為儲存引擎的使用必須基於特定的場景。而在Mysql中,儲存引擎也是一樣的,其沒有好壞之分。我們需要選擇適當的儲存引擎來適應不同的場景,才能做到最好。儲存引擎就是儲存資料、建立索引、更新/查詢資料等技術的實現方式。表類型可以被稱為儲存引擎,因為儲存引擎是基於表而非庫。
MYsql的體系結構如下圖所示:
最上層是一些客戶端和連結服務,主要完成一些類似連線處理,授權認證,及相關的安全方案,伺服器也會為安全存取的每個客戶端驗證它所具有的操作權限。
第二層架構主要完成大多數的核心服務功能,如SOL接口,並完成緩存的查詢,SOL的分析和優化,部分內建函數的執行。所有跨儲存引擎的功能也在這一層實現,如 流程、函數等。
儲存引擎是MvSOL中負責資料儲存和提取的關鍵元件,伺服器與儲存引擎通信,使用API。根據需要選取適合的儲存引擎,因為不同的儲存引擎具有不同的功能。
主要是將資料儲存在檔案系統之上:並完成與儲存引擎的互動。
從MySQL 5.5開始,InnoDB儲存引擎成為預設的儲存引擎,當然還有其他多種儲存引擎可供選擇。之前預設的是Memory 儲存引擎。
show engines;
create table Course( Con int primary key auto_increment, Cname varchar(10), Cpon int, Ccredit int ) show create table course;
例如,我們可以在建立表格的同時,指定此表的儲存引擎類型。
create table test_mysql( name varchar(10), age int ) engine = Memory;
#這裡重點介紹以下InnoDB
InnoDB是一種兼顧高可靠性和高效能的通用儲存引擎,在MvSOL 5.5 之後,InnoDB是預設的MvSOL儲存引擎。
DML操作遵循ACID模型,支援交易;
##行級鎖定,提高並發存取效能;
#支援外鍵FOREIGN KEY約束,保證資料的完整性與正確性:
#xxx.ibd:xxx代表的是表名,innoDB引擎的每個表都會對應這樣一個表空間文件,儲存該表的表結構(frm、sdi)、資料和索引。
參數:innodb file per table
最後用一張圖,來展示一下InnoDB 的邏輯儲存結構。
總結:InnoDB 是支援交易的,而MyISAM不支援;InnoDB 是支援行鎖的,而MyISAM不支持,支援表鎖定;InnoDB 是支援外鍵的,而MyISAM不支援;
儲存引擎的選擇以上是Mysql資料庫中的儲存引擎是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!