mysql的存儲引擎——InnoDB和MyISAM

一、介紹

在MySQL的設計上,採用了分層架構的設計模式。有如下層次:

  • 連接層
  • 服務層
  • 引擎層
  • 存儲層

如同網絡的OSI七層模型,每個層次各負其責,各個相鄰層次直接相互調用提供服務。

二、各層詳細介紹

1、連接層

連接層主要與客戶端打交道,實現數據庫與客戶端的連接通信,完成連接處理、身份認證等等。

2、服務層

服務層提供了豐富的核心功能,如緩存(緩存select結果)、優化SQL語句(MySQL會對執行的sql語句進行優化)、過程、函數等等。

3、引擎層

mysql中有多種存儲引擎,負責數據的存儲方式和提取。存儲引擎有InnoDB、MyISAM、NDB、Merge等等,常用的兩種存儲引擎分別是InnoDB和MyISAM

4、存儲層

將數據存放在磁盤上,與硬件打交道的一層

三、存儲引擎InnoDB和MyISAM

1、兩者的區別

 

  InnoDB MyISAM
事務 支持事務 不支持事務
鎖粒度 行鎖 表鎖
併發度
索引方式 聚集索引 非聚集索引
外鍵 支持外鍵 不支持外鍵

2、選擇方式

  • 如果需要事務支持,選擇InnoDB
  • 讀多寫少的場景,選擇MyISAM
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章