這道題看着很簡單,但是也是很容易漏和答錯,同樣也是在面試/筆試中會遇到的問題
首先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