1. 程式人生 > >資料庫基礎問題:MySQL有幾種引擎?各自的區別是什麼?

資料庫基礎問題:MySQL有幾種引擎?各自的區別是什麼?

這道題看著很簡單,但是也是很容易漏和答錯,同樣也是在面試/筆試中會遇到的問題

首先MySQL有兩種資料引擎,一個是MyISAM,與InnoDB

MyISAM與InnoDB最大的不同的是:MyISAM不支援事務,而InnoDB支援事務

具體的不同在於:

MyISAM:

1)不支援事務和外來鍵
2)極度強調讀取速度(這方面效能高)
3)不支援崩潰後災難恢復
4)使用的鎖是表鎖

InnoDB:

1)實現了ACID的事務特性,並且如果開啟了事務,隔離級別預設是可重複讀,同時支援外來鍵
2)寫速度(百萬級別的資料)遠遠慢於MyISAM,讀的速度也不是很快,雖然速度慢,但是增刪有事務不錯,慢點可以接受
3)通過bin-log 進行災難恢復和做資料庫主從
4)在說明範圍的情況下可以使用行鎖

本文是對下面答案的提煉和針對性補充,若想研究兩者的具體區別和做實驗,請參考:https://www.cnblogs.com/sunsky303/p/8274586.html