MySQL資料庫表引擎的選擇 | 黃喬國PHP
阿新 • • 發佈:2019-02-09
在MySQL中我們主要會使用到兩種表引擎:InnoDB和MyISAM。
下面我們來看看兩種表引擎的區別:
InnoDB引擎:
1.災難恢復性好。
2.支援4種級別的事務,雙認事務的隔高級別是Repeatable Read,事務支援是通過MVCC併發控制來提供的。
3.使用行級鎖,併發效能高。
4.使用此儲存引擎的表,資料的物理組織形式是簇表,資料按主鍵來組織,即主鍵索引和資料是在一起的,B+樹就是這樣的。
5.實現緩衝管理,能快取索引也能快取資料。
6.支援外來鍵。
7.支援熱備份。
8.對資料的插入,更改,刪除效能更好。
MyISAM引擎:
1.配合鎖,實現作業系統下的複製備份、遷移。
2.使用表級鎖併發性差。
3.支援全文索引。
4.主機宕機後,表容易損壞,災難恢復性差。
5.無事物支援。
6.只能快取索引,資料快取利用作業系統緩衝區來實現,引發過多的系統呼叫,效能不佳。
7.資料緊湊儲存,可以獲得更快的索引和更快的全表掃描效能。
8.對資料的查詢,效能表現更好。
兩種儲存引擎的選擇:
我們通常選用InnoDB作為表的儲存引擎,能使用事物,且併發性高,支援外來鍵,支援外來鍵索引等。