1.MyISAM
MyISAM是mysql5.1及之前版本的預設引擎,很久未被更新。
使用表級鎖, 如果資料量大,一個插入操作鎖定表後,其他請求都将阻塞。
支援全文索引
支援查詢緩存儲存表的總行數,使用count(*) 并且無where子句的時候可以很快傳回結果,但是實際使用時基本不會無where子句
簡要:不支援事務安全沒有事務日志和分類,是以它隻将資料寫入Linux檔案緩存并希望能最終寫入磁盤。如果系統在這個過程中崩潰或者丢失一些資料,MyISAM表會經常出現無法啟動或者警告你需要修複表;它恢複資料的方法有限并且經常會丢失資料。另外,MyISAM也很難正确的備份,備份的時候通常需要鎖住整個系統的資料,這就意味着每天網站都要當機或者無法使用一段時間。
MyISAM表允許在定期列中進行全文檢索,而InnoDB不支援(這個沒搞懂)
2.InnoDB
支援事務
支援行級鎖和表級鎖,能支援更多的并發量
mysql5.6版本開始支援 全文索引
查詢不加鎖,完全不影響查詢Innodb會對每個表設定一個事務計數器,裡面存儲目前最大的事務ID.當一個事務送出時,InnoDB會使用MVCC中系統事務ID最大的事務ID跟新目前表的計數器.隻有比這個最大ID大的事務能使用查詢緩存,其他比這個ID小的事務則不能使用查詢緩存.另外,在InnoDB中,所有有加鎖操作的事務都不使用任何查詢緩存
簡要:支援事務安全事務日志記錄真正的資料庫事務,但更重要的是資料崩潰恢複和復原。基于 InooDB方式的IO,能給予更安全資料保護和更好性能表現