存儲引擎

1、MyISAM

1. 特色:

Mysql5.5版本以前的默認存儲引擎sql

數據表文件組成:表名.frm .MYD .MYI
frm 描述表結構 MYD保存表數據 MYI存儲表索引緩存

2. 特性:

併發性與鎖級別-表級鎖;併發

支持全文檢索函數

支持數據壓縮高併發

3. 使用場景:

非事務性應用(數據倉庫,報表,日誌數據);性能

只讀類應用;日誌

空間類應用(空間函數,座標);blog

2、Innodb

1. 特色:

Mysql 5.5 以及之後版本默認的存儲引擎;索引

2. 表空間描述:

SHOW VARIABLES LIKE '%innodb_file_per_table%';事務

ON:獨立表空間(包含文件.frm + .ibd);

OFF:系統表空間 (ibdataX);

3. 表空間對比:

  • 系統表空間沒法簡單的收縮文件大小
  • 獨立表空間能夠經過optimize table 收縮系統文件
  • 系統表空間會產生IO瓶頸
  • 獨立表空間能夠同時向多個文件刷新數據

4. 特性:

  • InnoDB 是一個事務性存儲引擎
  • 徹底支持事物的ACID
  • Redo Log 和 Undo Log
  • Innodb 支持行級鎖(併發程度更高)

3、二者之間的對比

對比項
MyISAM 
InnoDB
主外鍵
不支持 支持
事物 不支持 支持
行級鎖 表鎖,即操做一條記錄,也會鎖住整個表;不適合高併發操做

行鎖,也支持表級鎖,行鎖的只是鎖住某一行,不對其餘行形成影響;

適合高併發操做

緩存 只是緩存索引,不緩存真是數據
不只緩存索引還要緩存真
實數據,對內存要求較高,
並且內存大小對性能有決
定性的影響
表空間
關注點 性能 事物
默認安裝 Y 5.5版本以前 Y 5.5 版本即之後的版本
相關文章
相關標籤/搜索