開發中,我們經常使用的有MyISAM/innodb/memory等數據庫引擎,那麼在這些常用的數據庫引擎怎麼選擇呢?
數據庫存儲引擎選擇:
MyISAM引擎:
如果表對事務的要求不高,同時是以查詢和添加爲主的,我們考慮使用MyISAM存儲引擎
innodb引擎:
對事務要求高,保存的數據都是重要的數據,我們建議使用INNODB
memory引擎:
我們數據變化頻繁,不需要入庫,同時又頻繁的查詢和修改,我們考慮使用(速度快)
數據庫存儲引擎介紹:
來自文章:https://blog.csdn.net/zyx1260168395/article/details/105088359
MyIsam:
- 使用三個文件表示每個表:
- 格式文件 — 存儲表的結構(mytable.frm)
- 數據文件 — 存儲表的數據(mytable.MYD)
- 索引文件 — 存儲表的索引(mytable.MYI)
- 對錶文件中數據行查詢提速,有很大幫助。
- 靈活的AUTO_INCREMENT字段處理
- 可被轉換爲壓縮、只讀表來節省空間
- 但是MyIsam不支持事務,因此在進行數據行添加,修改,刪除時,無法保證數據安全性
INNODB:MySQL數據庫的默認引擎;
- 每個InnoDB表在數據庫目錄中以.frm格式文件表示
- InnoDB表空間tablespace被用於存儲表的內容
- 提供一組用來記錄事務性活動的日誌文件
- 支持事務處理
- 提供全ACID兼容
- 在MySQL服務器崩潰後提供自動恢復
- 多版本(MVCC)和行級鎖定
- 支持外鍵及引用的完整性,包括級聯更新和刪除
MEMORY:其數據存儲在內存中,且行的長度固定,這兩個特點使得MEMORY存儲引擎非常快;
- 在數據庫目錄內,每個表均以.frm格式文件表示;
- 表數據及索引被存儲在內存中;
- 表級鎖機制;
- 不能包含TEXT或BLOB字段;