更新時間:2021-01-14 17:13:46 來源:動力節點 瀏覽1082次
MySQL中的數據用各種不同的技術存儲在文件(或者內存)中。這些技術中的每一種技術都使用不同的存儲機制、索引技巧、鎖定水平并且最終提供廣泛的不同的功能和能力。通過選擇不同的技術,你能夠獲得額外的速度或者功能,從而改善你的應用的整體功能。這些不同的技術以及配套的相關功能在MySQL中被稱作存儲引擎(也稱作表類型)。那么,MySQL數據庫都有哪些存儲引擎呢?下面我們一起來看看MySQL 7個存儲引擎。
1.InnoDB存儲引擎
InnoDB是MySQL的默認事務型引擎,它被設計用來處理大量的短期(short-lived)事務,InnoDB存儲引擎的MySQL表提供了事務,回滾以及系統崩潰修復能力和多版本迸發控制的事務的安全。除非有非常特別的原因需要使用其他的存儲引擎,否則應該優先考慮InnoDB引擎。
2.MyISAM存儲引擎
MyISAM提供了大量的特性,包括全文索引、壓縮、空間函數(GIS)等,但MyISAM不支持事務和行級鎖,有一個毫無疑問的缺陷就是崩潰后無法安全恢復。
該引擎基于ISAM數據庫引擎,除了提供ISAM里所沒有的索引和字段管理等大量功能,MyISAM還使用一種表格鎖定的機制來優化多個并發的讀寫操作,但是需要經常運行OPTIMIZE TABLE命令,來恢復被更新機制所浪費的空間,否則碎片也會隨之增加,最終影響數據訪問性能。
3.Archive引擎
Archive檔案存儲引擎只支持INSERT和SELECT操作,在MySQL5.1之前不支持索引。
Archive表適合日志和數據采集類應用。
根據英文的測試結論來看,Archive表比MyISAM表要小大約75%,比支持事務處理的InnoDB表小大約83%。
4.Blackhole引擎
Blackhole引擎沒有實現任何存儲機制,它會丟棄所有插入的數據,不做任何保存。但服務器會記錄Blackhole表的日志,所以可以用于復制數據到備庫,或者簡單地記錄到日志。但這種應用方式會碰到很多問題,因此并不推薦。
5.CSV引擎
CSV引擎可以將普通的CSV文件作為MySQL的表來處理,但不支持索引。
CSV引擎可以作為一種數據交換的機制,非常有用。
CSV存儲的數據直接可以在操作系統里,用文本編輯器,或者excel讀取。
6.Memory引擎
如果需要快速地訪問數據,并且這些數據不會被修改,重啟以后丟失也沒有關系,那么使用Memory表是非常有用。Memory表至少比MyISAM表要快一個數量級。
7.Federated引擎
Federated引擎是訪問其他MySQL服務器的一個代理,盡管該引擎看起來提供了一種很好的跨服務器的靈活性,但也經常帶來問題,因此默認是禁用的。
綜上所述,MySQL 7種存儲引擎包括InnoDB存儲引擎,MyISAM存儲引擎,Archive引擎,Blackhole引擎,CSV引擎,Memory引擎,Federated引擎。MySQL默認配置了許多不同的存儲引擎,可以預先設置或者在MySQL服務器中啟用。你可以選擇適用于服務器、數據庫和表格的存儲引擎,以便在選擇如何存儲你的信息、如何檢索這些信息以及你需要你的數據結合什么性能和功能的時候為你提供最大的靈活性,具體的操作方法可以參考本站的MySQL教程。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習