1. 程式人生 > >MySQL資料庫表引擎的選擇 | 黃喬國PHP

MySQL資料庫表引擎的選擇 | 黃喬國PHP

在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作為表的儲存引擎,能使用事物,且併發性高,支援外來鍵,支援外來鍵索引等。