更新時間:2021-01-08 17:33:10 來源:動力節點 瀏覽1436次
存儲引擎,也叫做表類型,其具體作用便是決定一個數據表怎么處理和存儲表中的數據,MySQL支持多種不同的存儲引擎,而且存儲引擎被設計為可插拔式的,在同一個數據庫中,不同的數據表可以使用不同的存儲引擎。Innodb是MySQL的默認存儲引擎,也是常用的存儲引擎,另外比較常用的存儲引擎還有MyISAM、Momery以及ARCHIVE。本文我們就來聊聊這4種常用MySQL存儲引擎。
1.innoDB存儲引擎
存儲位置:MySQL如果使用InnoDB存儲引擎,數據庫文件類型就包括.frm、ibdata1、.ibd,存放位置有兩個,.frm文件默認存放位置是C:\Documents and Settings\All Users\ApplicationData\MySQL\MySQL Server 5.1\data,ibdata1、.ibd文件默認存放位置是MySQL安裝目錄下的data文件夾。
innodb存儲引擎的mysql表提供了事務,回滾以及系統崩潰修復能力和多版本迸發控制的事務的安全。
innodb支持自增長列(auto_increment),自增長列的值不能為空,如果在使用的時候為空的話怎會進行自動存現有的值開始增值,如果有但是比現在的還大,則就保存這個值。
innodb存儲引擎支持外鍵(foreign key) ,外鍵所在的表稱為子表而所依賴的表稱為父表。
innodb存儲引擎最重要的是支持事務,以及事務相關聯功能。
innodb存儲引擎支持mvcc的行級鎖。
innodb存儲引擎索引使用的是B+Tree
2.MEMORY存儲引擎
memory存儲引擎相比前面的一些存儲引擎,有點不一樣,其使用存儲在內從中的數據來創建表,而且所有的數據也都存儲在內存中。
每個基于memory存儲引擎的表實際對應一個磁盤文件,該文件的文件名和表名是相同的,類型為.frm。該文件只存儲表的結構,而其數據文件,都是存儲在內存中,這樣有利于對數據的快速處理,提高整個表的處理能力。
memory存儲引擎默認使用哈希(HASH)索引,其速度比使用B-+Tree型要快,如果讀者希望使用B樹型,則在創建的時候可以引用。
memory存儲引擎文件數據都存儲在內存中,如果mysqld進程發生異常,重啟或關閉機器這些數據都會消失。所以memory存儲引擎中的表的生命周期很短,一般只使用一次。
3.MyISAM存儲引擎:
存放的位置:MySQL如果使用MyISAM存儲引擎,數據庫文件類型就包括.frm、.MYD、.MYI,默認存放位置是C:\Documentsand Settings\All Users\Application Data\MySQL\MySQL Server 5.1\data
存放的方式: MyISAM 這種存儲引擎不支持事務,不支持行級鎖,只支持并發插入的表鎖,主要用于高負載的select。
索引的方式: MyISAM也是使用B+tree索引但是和Innodb的在具體實現上有些不同。
該引擎基于ISAM數據庫引擎,除了提供ISAM里所沒有的索引和字段管理等大量功能,MyISAM還使用一種表格鎖定的機制來優化多個并發的讀寫操作,但是需要經常運行OPTIMIZE TABLE命令,來恢復被更新機制所浪費的空間,否則碎片也會隨之增加,最終影響數據訪問性能。MyISAM還有一些有用的擴展,例如用來修復數據庫文件的MyISAMChk工具和用來恢復浪費空間的 MyISAMPack工具。MyISAM強調了快速讀取操作,主要用于高負載的select,這可能也是MySQL深受Web開發的主要原因:在Web開發中進行的大量數據操作都是讀取操作,所以大多數虛擬主機提供商和Internet平臺提供商(Internet Presence Provider,IPP)只允許使用MyISAM格式。
4.ARCHIVE存儲引擎
該存儲引擎非常適合存儲大量獨立的、作為歷史記錄的數據。區別于InnoDB和MyISAM這兩種引擎,ARCHIVE提供了壓縮功能,擁有高效的插入速度,但是這種引擎不支持索引,所以查詢性能較差一些。
上述的4種MySQL存儲引擎各自有優缺點,除了都具有的存儲引擎的基本功能之外,都有自己的獨到之處。InnoDB支持事務處理,支持外鍵,支持崩潰修復能力和并發控制。MyISAM插入數據快,空間和內存使用比較低。MEMORY數據的處理速度快,但是安全性不高。Archive非常適合存儲歸檔數據,如記錄日志信息可以使用Archive。想要學習更多的MySQL數據庫的相關知識,快來觀看本站的MySQL教程一起學習吧!
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習