您好,登錄后才能下訂單哦!
這篇文章主要講解了“MySQL數據庫存儲引擎的分類有哪些”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“MySQL數據庫存儲引擎的分類有哪些”吧!
1、簡介MySQL中的數據用各種不同的技術存儲在文件(或者內存)中。每一種技術都使用不同的存儲機制、索引技巧、鎖定水平并且最終提供廣泛的不同的功能和能力。
通過選擇不同的技術,你能夠獲得額外的速度或者功能,從而改善你的應用的整體功能。例如,如果你在研究大量的臨時數據,你也許只需要將數據存儲在內存中而不是文件中(內存存儲引擎能夠在內存中存儲所有的表格數據)。又或者,你也許需要一個支持事務處理的數據庫(以確保事務處理不成功時數據的回退能力)。
這些不同的技術以及配套的相關功能在 MySQL中被稱作存儲引擎(也稱作表類型)
MySQL默認配置了許多不同的存儲引擎,可以預先設置或者在MySQL服務器中啟用,我們可以根據對數據處理的需求,選擇不同的存儲引擎,從而最大限度的利用MySQL強大的功能。
在客戶端使用相關命令顯示所有存儲引擎:show engines;
這里介紹一下常用的存儲引擎
InnoDB是一個健壯的事務型存儲引擎,這種存儲引擎已經被很多互聯網公司使用,為用戶操作非常大的數據存儲提供了一個強大的解決方案。InnoDB就是作為默認的存儲引擎。InnoDB還引入了行級鎖定和外鍵約束。
在以下場合下,使用InnoDB是最理想的選擇:
1.更新密集的表。InnoDB存儲引擎特別適合處理多重并發的更新請求。
2.事務。InnoDB存儲引擎是支持事務的標準MySQL存儲引擎。
3.自動災難恢復。與其它存儲引擎不同,InnoDB表能夠自動從災難中恢復。
4.外鍵約束。MySQL支持外鍵的存儲引擎只有InnoDB。
5.支持自動增加列AUTO_INCREMENT屬性。
一般來說,如果需要事務支持,并且有較高的并發讀取頻率,InnoDB是不錯的選擇。
MyISAM不支持事務,也不支持外鍵,尤其是訪問速度快,對事務完整性沒有要求或者以SELECT、INSERT為主的應用基本都可以使用這個引擎來創建表。每個MyISAM在磁盤上存儲成3個文件,其中文件名和表名都相同,但是擴展名分別為:
.frm(存儲表定義)
.MYD(MYData,存儲數據)
.MYI(MYIndex,存儲索引)
使用Memory存儲引擎的出發點是速度。為得到最快的響應時間,采用的邏輯存儲介質是系統內存。雖然在內存中存儲表數據確實會提供很高的性能,但當mysqld守護進程崩潰時,所有的Memory數據都會丟失。獲得速度的同時也帶來了一些缺陷。它要求存儲在Memory數據表里的數據使用的是長度不變的格式,這意味著不能使用BLOB和TEXT這樣的長度可變的數據類型,VARCHAR是一種長度可變的類型,但因為它在MySQL內部當做長度固定不變的CHAR類型,所以可以使用。
一般在以下幾種情況下使用Memory存儲引擎:
1.目標數據較小,而且被非常頻繁地訪問。在內存中存放數據,所以會造成內存的使用,可以通過參數max_heap_table_size控制Memory表的大小,設置此參數,就可以限制Memory表的最大大小。
2.如果數據是臨時的,而且要求必須立即可用,那么就可以存放在內存表中。
3.存儲在Memory表中的數據如果突然丟失,不會對應用服務產生實質的負面影響。
可以按照下列判斷來選擇
(1)是否需要支持事務;
(2)是否需要使用熱備;
(3)崩潰恢復:能否接受崩潰;
(4)是否需要外鍵支持;
然后按照標準,選擇對應的存儲引擎即可。
感謝各位的閱讀,以上就是“MySQL數據庫存儲引擎的分類有哪些”的內容了,經過本文的學習后,相信大家對MySQL數據庫存儲引擎的分類有哪些這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。