🍐多種存儲引擎,以適應於不一樣領域的數據庫應用須要,用戶能夠選擇不一樣的存儲引擎提升應用的效率,提供靈活的存儲,用戶甚至能夠按照本身的須要定製和使用本身的存儲引擎。數據庫
🍐MySQL5.0支持的存儲引擎包括MyISAM、InnoDB、MEMORY、EXAMPLE、NDB Cluster、ARCHIVE、CSV、BLACKHOLE、FEDERATED,其中InnoDB和BDBD提供事務安全表,其餘存儲引擎都市非事務安全表。緩存
🍐建立新表時若是不指定存儲引擎,系統會使用默認存儲引擎。MySQL5.5以前的默認存儲引擎是MYISAM,5.5以後改成InnoDB。(個人是8.0版,以下圖)安全
🍐建立表ai(存儲引擎爲MYISAM),表country(存儲引擎爲InnoDB):併發
🍐使用ALTER TABLE語句,將一個已經存在的表修改爲其餘的存儲引擎。下面的例子介紹瞭如何將表ai從MyISAM存儲引擎修改到InnoDB存儲引擎.性能
嗯哼,怎麼肥四啊???spa
嗯哼,怎麼肥四啊???好迷,暫未解決插件
🍐不支持事務,也不支持外鍵。對象
🍐優點訪問速度快,對事務完整性沒有要求,以SELECT、INSERT爲主的應用基本用這個引擎來建立。blog
🍐支持三種不一樣的存儲格式分別是:排序
🍐InooDB存儲引擎具備提交,回滾,和崩潰恢復能力的事務安全。
MEMORY類型的表訪問很是地快,由於它的數據是放在內存中的,而且默認使用HASH索引,可是一旦服務關閉,表中的數據就會丟失掉。
MEMORY 類型的存儲引擎主要用於那些內容變化不頻繁的代碼表,或者做爲統計操做的中間結果表,便於高效地對中間結果進行分析並獲得最終的統計結果。對存儲引擎爲MEMORY的表進行更新操做要謹慎,由於數據並無實際寫入到磁盤中,因此必定要對下次從新啓動服務後如何得到這些修改後的數據有所考慮
🎂MyISAM:默認的MySQL插件式存儲引擎。若是應用是以讀操做和插入操做爲主,只有不多的更新和刪除操做,而且對事務的完整性、併發性要求不是很高,那麼選擇這個存儲引擎是很是適合的。MyISAM是在Web、數據倉儲和其餘應用環境下最常使用的存儲引擎之一。
🎂InnoDB:用於事務處理應用程序,支持外鍵。若是應用對事務的完整性有比較高的要求,在併發條件下要求數據的一致性,數據操做除了插入和查詢之外,還包括不少的更新、刪除操做,那麼InnoDB存儲引擎應該是比較合適的選擇。InnoDB存儲引擎除了有效地下降因爲刪除和更新致使的鎖定,還能夠確保事務的完整提交(Commit)和回滾(Rollback),對於相似計費系統或者財務系統等對數據準確性要求比較高的系統,InnoDB都是合適的選擇。
🎂MEMORY:將全部數據保存在 RAM 中,在須要快速定位記錄和其餘相似數據的環境下,可提供極快的訪問。MEMORY 的缺陷是對錶的大小有限制,太大的表沒法緩存在內存中,其次是要確保表的數據能夠恢復,數據庫異常終止後表中的數據是能夠恢復的。MEMORY表一般用於更新不太頻繁的小表,用以快速獲得訪問結果。
🎂MERGE:用於將一系列等同的MyISAM表以邏輯方式組合在一塊兒,並做爲一個對象引用它們。MERGE表的優勢在於能夠突破對單個MyISAM表大小的限制,而且經過將不一樣的表分佈在多個磁盤上,能夠有效地改善MERGE表的訪問效率。這對於諸如數據倉儲等VLDB環境十分適合。