簡單點說 讀操作多用myisam 寫操作多用innodb 不過現在大家好像基本都用innodb,本人小白一個就直接用InnoDB。 MySQL自20多年前成立以來一直支持可插拔存儲引擎,但在一段相當長的時間里MyISAM一直是預設的存儲引擎,許多人運行MySQL甚至對底層存儲引擎一點都不瞭解。畢竟, ...
簡單點說
讀操作多用myisam
寫操作多用innodb
不過現在大家好像基本都用innodb,本人小白一個就直接用InnoDB。
MySQL自20多年前成立以來一直支持可插拔存儲引擎,但在一段相當長的時間里MyISAM一直是預設的存儲引擎,許多人運行MySQL甚至對底層存儲引擎一點都不瞭解。畢竟,MySQL剛開始是為小型網站的小型資料庫設計的,許多應用已經習慣使用MyISAM存儲引擎。
剛開始沒什麼問題,一切正常,但現在的問題是:MyISAM沒有考慮到應用到高併發高負載,多核CPU和RAID陣列的場景,也不能彈性擴展。所以網站流量越來越多後,他們不能擴展,因為MySQL查詢會在表級鎖上等待數秒(MyISAM只支持這種鎖機制)。他們不想每次MySQL崩潰時損壞他們的業務數據。
許多人並不知道,自MySQL存在以來MyISAM存儲引擎就有一個兄弟叫InnoDB。並且高併發負載,性能和彈性(也包括原子性,一致性和隔離)正是它的特長。
當然,在InnoDB發展過程中也有過一些問題(尤其是2006年5.0.30之前的版本的性能問題),但在這之後的10年時間里,InnoDB已經在你能想到的領域(或者沒有)得到了證明,而MyISAM已經很少被關註了。
因此,從MySQL 5.5.5開始,InnoDB成為預設的存儲引擎,現在你幾乎找不到大型MySQL資料庫的安裝使用MyISAM而不是InnoDB。
一些專業上兩者的區別,看了也記不住,可以百度下。
參考網站:https://yq.aliyun.com/ziliao/3877;https://www.cnblogs.com/y-rong/p/8110596.html