新聞中心
這篇文章給大家分享的是有關(guān)MySQL中常用的引擎有哪些的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧。
創(chuàng)新互聯(lián)專(zhuān)注于尋烏企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,成都商城網(wǎng)站開(kāi)發(fā)。尋烏網(wǎng)站建設(shè)公司,為尋烏等地區(qū)提供建站服務(wù)。全流程按需制作,專(zhuān)業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)專(zhuān)業(yè)和態(tài)度為您提供的服務(wù)
數(shù)據(jù)庫(kù)存儲(chǔ)引擎是數(shù)據(jù)庫(kù)底層軟件組織,數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)使用數(shù)據(jù)引擎進(jìn)行創(chuàng)建、查詢、更新和刪除數(shù)據(jù)。不同的存儲(chǔ)引擎提供不同的存儲(chǔ)機(jī)制、索引技巧、鎖定水平等功能,使用不同的存儲(chǔ)引擎,還可以獲得特定的功能。
現(xiàn)在許多不同的數(shù)據(jù)庫(kù)管理系統(tǒng)都支持多種不同的數(shù)據(jù)引擎。MySql的核心就是存儲(chǔ)引擎。
存儲(chǔ)引擎查看
MySQL給開(kāi)發(fā)者提供了查詢存儲(chǔ)引擎的功能,我這里使用的是MySQL5.1,可以在命令行窗口使用:
SHOW ENGINES
命令來(lái)查看MySQL使用的引擎,命令的輸出為(我用的Navicat Premium):
看到MySQL給用戶提供了這么多存儲(chǔ)引擎,包括處理事務(wù)安全表的引擎和出來(lái)了非事物安全表的引擎。
如果要想查看數(shù)據(jù)庫(kù)默認(rèn)使用哪個(gè)引擎,可以通過(guò)使用命令:
SHOW VARIABLES LIKE 'storage_engine';
來(lái)查看,查詢結(jié)果為:
在MySQL中,不需要在整個(gè)服務(wù)器中使用同一種存儲(chǔ)引擎,針對(duì)具體的要求,可以對(duì)每一個(gè)表使用不同的存儲(chǔ)引擎。Support列的值表示某種引擎是否能使用:YES表示可以使用、NO表示不能使用、DEFAULT表示該引擎為當(dāng)前默認(rèn)的存儲(chǔ)引擎 。
下面來(lái)看一下其中幾種常用的引擎。
一 、Innodb
支持事務(wù),是事務(wù)安全的,提供行級(jí)鎖與外鍵約束,有緩沖池,用于緩沖數(shù)據(jù)和索引。
適用場(chǎng)景:用于事務(wù)處理,具有ACID事物支持,應(yīng)用于執(zhí)行大量的insert和update操作的表。
二 、MyISAM
不支持事務(wù),不支持外鍵約束,不支持行級(jí)鎖,操作時(shí)需要鎖定整張表,不過(guò)會(huì)保存表的行數(shù),所以當(dāng)執(zhí)行select count(*) from tablename時(shí)執(zhí)行特別快。
適用場(chǎng)景:用于管理非事務(wù)表,提供高速檢索及全文檢索能力,適用于有大量的select操作的表,如 日志表
三 、MEMORY
使用存在于內(nèi)存中的內(nèi)容創(chuàng)建表,每一個(gè)memory只實(shí)際對(duì)應(yīng)一個(gè)磁盤(pán)文件。因?yàn)槭谴嬖趦?nèi)存中的,所以memory訪問(wèn)速度非常快,而且該引擎使用hash索引,可以一次定位,不需要像B樹(shù)一樣從根節(jié)點(diǎn)查找到支節(jié)點(diǎn),所以精確查詢時(shí)訪問(wèn)速度特別快,但是非精確查找時(shí),比如like,這種范圍查找,hash就起不到作用了。另外一旦服務(wù)關(guān)閉,表中的數(shù)據(jù)就會(huì)丟失,因?yàn)闆](méi)有存到磁盤(pán)中。
適用場(chǎng)景:主要用于內(nèi)容變化不頻繁的表,或者作為中間的查找表。對(duì)表的更新要謹(jǐn)慎因?yàn)閿?shù)據(jù)沒(méi)有被寫(xiě)入到磁盤(pán)中,服務(wù)關(guān)閉前要考慮好數(shù)據(jù)的存儲(chǔ)
四、 MERGE
MERGE存儲(chǔ)引擎把一組MyISAM數(shù)據(jù)表當(dāng)做一個(gè)邏輯單元來(lái)對(duì)待,讓我們可以同時(shí)對(duì)他們進(jìn)行查詢。構(gòu)成一個(gè)MERGE數(shù)據(jù)表結(jié)構(gòu)的各成員MyISAM數(shù)據(jù)表必須具有完全一樣的結(jié)構(gòu)。每一個(gè)成員數(shù)據(jù)表的數(shù)據(jù)列必須按照同樣的順序定義同樣的名字和類(lèi)型,索引也必須按照同樣的順序和同樣的方式定義。
除了便于同時(shí)引用多個(gè)數(shù)據(jù)表而無(wú)需發(fā)出多條查詢,MERGE數(shù)據(jù)表還提供了以下一些便利。
MERGE數(shù)據(jù)表可以用來(lái)創(chuàng)建一個(gè)尺寸超過(guò)各個(gè)MyISAM數(shù)據(jù)表所允許的最大長(zhǎng)度邏輯單元
你看一把經(jīng)過(guò)壓縮的數(shù)據(jù)表包括到MERGE數(shù)據(jù)表里。比如說(shuō),在某一年結(jié)束之后,你應(yīng)該不會(huì)再往相應(yīng)的日志文件里添加記錄,所以你可以用myisampack工具壓縮它以節(jié)省空間,而MERGE數(shù)據(jù)表仍可以像往常那樣工作
感謝各位的閱讀!關(guān)于MySql中常用的引擎有哪些就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!
分享題目:MySql中常用的引擎有哪些
新聞來(lái)源:http://www.ef60e0e.cn/article/gjhhhc.html