這篇文章主要講解了“MySQL數(shù)據(jù)庫存儲引擎的分類有哪些”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“MySQL數(shù)據(jù)庫存儲引擎的分類有哪些”吧!
成都創(chuàng)新互聯(lián)公司成立于2013年,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元龍亭做網(wǎng)站,已為上家服務(wù),為龍亭各地企業(yè)和個人服務(wù),聯(lián)系電話:18982081108
1、簡介MySQL中的數(shù)據(jù)用各種不同的技術(shù)存儲在文件(或者內(nèi)存)中。每一種技術(shù)都使用不同的存儲機制、索引技巧、鎖定水平并且最終提供廣泛的不同的功能和能力。
通過選擇不同的技術(shù),你能夠獲得額外的速度或者功能,從而改善你的應(yīng)用的整體功能。例如,如果你在研究大量的臨時數(shù)據(jù),你也許只需要將數(shù)據(jù)存儲在內(nèi)存中而不是文件中(內(nèi)存存儲引擎能夠在內(nèi)存中存儲所有的表格數(shù)據(jù))。又或者,你也許需要一個支持事務(wù)處理的數(shù)據(jù)庫(以確保事務(wù)處理不成功時數(shù)據(jù)的回退能力)。
這些不同的技術(shù)以及配套的相關(guān)功能在 MySQL中被稱作存儲引擎(也稱作表類型)
MySQL默認(rèn)配置了許多不同的存儲引擎,可以預(yù)先設(shè)置或者在MySQL服務(wù)器中啟用,我們可以根據(jù)對數(shù)據(jù)處理的需求,選擇不同的存儲引擎,從而最大限度的利用MySQL強大的功能。
在客戶端使用相關(guān)命令顯示所有存儲引擎:show engines;
這里介紹一下常用的存儲引擎
InnoDB是一個健壯的事務(wù)型存儲引擎,這種存儲引擎已經(jīng)被很多互聯(lián)網(wǎng)公司使用,為用戶操作非常大的數(shù)據(jù)存儲提供了一個強大的解決方案。InnoDB就是作為默認(rèn)的存儲引擎。InnoDB還引入了行級鎖定和外鍵約束。
在以下場合下,使用InnoDB是最理想的選擇:
1.更新密集的表。InnoDB存儲引擎特別適合處理多重并發(fā)的更新請求。
2.事務(wù)。InnoDB存儲引擎是支持事務(wù)的標(biāo)準(zhǔn)MySQL存儲引擎。
3.自動災(zāi)難恢復(fù)。與其它存儲引擎不同,InnoDB表能夠自動從災(zāi)難中恢復(fù)。
4.外鍵約束。MySQL支持外鍵的存儲引擎只有InnoDB。
5.支持自動增加列AUTO_INCREMENT屬性。
一般來說,如果需要事務(wù)支持,并且有較高的并發(fā)讀取頻率,InnoDB是不錯的選擇。
MyISAM不支持事務(wù),也不支持外鍵,尤其是訪問速度快,對事務(wù)完整性沒有要求或者以SELECT、INSERT為主的應(yīng)用基本都可以使用這個引擎來創(chuàng)建表。每個MyISAM在磁盤上存儲成3個文件,其中文件名和表名都相同,但是擴展名分別為:
.frm(存儲表定義)
.MYD(MYData,存儲數(shù)據(jù))
.MYI(MYIndex,存儲索引)
使用Memory存儲引擎的出發(fā)點是速度。為得到最快的響應(yīng)時間,采用的邏輯存儲介質(zhì)是系統(tǒng)內(nèi)存。雖然在內(nèi)存中存儲表數(shù)據(jù)確實會提供很高的性能,但當(dāng)mysqld守護進程崩潰時,所有的Memory數(shù)據(jù)都會丟失。獲得速度的同時也帶來了一些缺陷。它要求存儲在Memory數(shù)據(jù)表里的數(shù)據(jù)使用的是長度不變的格式,這意味著不能使用BLOB和TEXT這樣的長度可變的數(shù)據(jù)類型,VARCHAR是一種長度可變的類型,但因為它在MySQL內(nèi)部當(dāng)做長度固定不變的CHAR類型,所以可以使用。
一般在以下幾種情況下使用Memory存儲引擎:
1.目標(biāo)數(shù)據(jù)較小,而且被非常頻繁地訪問。在內(nèi)存中存放數(shù)據(jù),所以會造成內(nèi)存的使用,可以通過參數(shù)max_heap_table_size控制Memory表的大小,設(shè)置此參數(shù),就可以限制Memory表的最大大小。
2.如果數(shù)據(jù)是臨時的,而且要求必須立即可用,那么就可以存放在內(nèi)存表中。
3.存儲在Memory表中的數(shù)據(jù)如果突然丟失,不會對應(yīng)用服務(wù)產(chǎn)生實質(zhì)的負(fù)面影響。
可以按照下列判斷來選擇
(1)是否需要支持事務(wù);
(2)是否需要使用熱備;
(3)崩潰恢復(fù):能否接受崩潰;
(4)是否需要外鍵支持;
然后按照標(biāo)準(zhǔn),選擇對應(yīng)的存儲引擎即可。
感謝各位的閱讀,以上就是“MySQL數(shù)據(jù)庫存儲引擎的分類有哪些”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對MySQL數(shù)據(jù)庫存儲引擎的分類有哪些這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!
網(wǎng)頁標(biāo)題:MySQL數(shù)據(jù)庫存儲引擎的分類有哪些
網(wǎng)站路徑:http://jinyejixie.com/article26/pggdcg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供、面包屑導(dǎo)航、移動網(wǎng)站建設(shè)、建站公司、企業(yè)網(wǎng)站制作、商城網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)