内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

MySQL數(shù)據(jù)庫(kù)引擎和索引

一、MySQL 數(shù)據(jù)庫(kù)引擎:

創(chuàng)新互聯(lián)成立于2013年,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目做網(wǎng)站、網(wǎng)站制作網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元黃驊做網(wǎng)站,已為上家服務(wù),為黃驊各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18982081108

1. Innodb引擎:
Innodb引擎提供了對(duì)數(shù)據(jù)庫(kù)ACID事務(wù)的支持,并且實(shí)現(xiàn)了SQL標(biāo)準(zhǔn)的四種隔離級(jí)別。

在SQL標(biāo)準(zhǔn)中定義了四種隔離級(jí)別,每一種級(jí)別都規(guī)定了一個(gè)事務(wù)中所做的修改,哪些是在事務(wù)內(nèi)和事務(wù)間可見(jiàn)的,哪些是不可見(jiàn)的。較低級(jí)別的隔離通??梢詧?zhí)行更高的并發(fā),系統(tǒng)的開(kāi)銷也更低。

四種隔離級(jí)別:
未提交讀(Read uncommitted):在未提交讀級(jí)別,事務(wù)中的修改,即使沒(méi)有提交,對(duì)其他事務(wù)也都是可見(jiàn)的。事務(wù)可以讀取未提交的數(shù)據(jù),這也被稱為臟讀(Dirty Read)。
這個(gè)級(jí)別會(huì)導(dǎo)致很多問(wèn)題,從性能上來(lái)說(shuō),未提交讀不會(huì)比其他的級(jí)別好太多,但是缺乏其他級(jí)別的很多好處,在實(shí)際應(yīng)用中一般很少使用。
提交讀(Read committed):大多數(shù)數(shù)據(jù)庫(kù)系統(tǒng)的默認(rèn)隔離級(jí)別都是提交讀(但Mysql不是)。提交讀滿足前面提到的隔離性的簡(jiǎn)單定義:一個(gè)事務(wù)開(kāi)始時(shí),只能“看見(jiàn)”已經(jīng)提交的事務(wù)所做的修改。
換句話說(shuō),一個(gè)事務(wù)從開(kāi)始直到提交之前,所做的任何修改對(duì)其他事務(wù)都是不可見(jiàn)的。這個(gè)級(jí)別有時(shí)候也叫做不可重復(fù)讀(nonrepeatable read),因?yàn)閮纱螆?zhí)行同樣的查詢,可能會(huì)得到不一樣的結(jié)果。
可重復(fù)讀(Repeatable read):可重復(fù)讀解決了臟讀的問(wèn)題。該級(jí)別保證了在同一個(gè)事務(wù)中多次讀取同樣記錄的結(jié)果是一致的。但是理論上,可重復(fù)讀隔離級(jí)別還是無(wú)法解決另外一個(gè)幻讀(Phantom read)問(wèn)題。
所謂幻讀,指的是當(dāng)某個(gè)事務(wù)在讀取某個(gè)范圍內(nèi)的記錄時(shí),另外一個(gè)事務(wù)中又在該范圍插入了新的記錄,當(dāng)之前的事務(wù)再次讀取該范圍的記錄時(shí),會(huì)產(chǎn)生幻行(Phantom row)??芍貜?fù)讀是MySQL的默認(rèn)事務(wù)隔離級(jí)別。
可串行化(Serializable):可串行化是最高的隔離級(jí)別。它通過(guò)強(qiáng)制事務(wù)串行執(zhí)行,避免了前面所說(shuō)的幻讀問(wèn)題。簡(jiǎn)單來(lái)說(shuō),可串行化會(huì)在讀取的每一行數(shù)據(jù)上都加上鎖,所以可能導(dǎo)致大量的超時(shí)和鎖爭(zhēng)用問(wèn)題。
實(shí)際應(yīng)用中也很少用到這個(gè)隔離級(jí)別,只有在非常需要確保數(shù)據(jù)的一致性而且可以接受沒(méi)有并發(fā)的情況下,才考慮用該級(jí)別。

該引擎還提供了行級(jí)鎖和外鍵約束,它的設(shè)計(jì)目標(biāo)是處理大容量數(shù)據(jù)庫(kù)系統(tǒng),它本身其實(shí)就是基于MySQL后臺(tái)的完整數(shù)據(jù)庫(kù)系統(tǒng),MySQL運(yùn)行時(shí)Innodb會(huì)在內(nèi)存中建立緩沖池,用于緩沖數(shù)據(jù)和索引。
但是該引擎不支持FULLTEXT類型的索引,而且它沒(méi)有保存表的行數(shù),當(dāng)SELECT COUNT(*) FROM TABLE時(shí)需要掃描全表。
當(dāng)需要使用數(shù)據(jù)庫(kù)事務(wù)時(shí),該引擎當(dāng)然是首選。
由于鎖的粒度更小,寫(xiě)操作不會(huì)鎖定全表,所以在并發(fā)較高時(shí),使用Innodb引擎會(huì)提升效率。
但是使用行級(jí)鎖也不是絕對(duì)的,如果在執(zhí)行一個(gè)SQL語(yǔ)句時(shí)MySQL不能確定要掃描的范圍,InnoDB表同樣會(huì)鎖全表。

2. MyIASM引擎:

MyIASM是MySQL默認(rèn)的引擎,但是它沒(méi)有提供對(duì)數(shù)據(jù)庫(kù)事務(wù)的支持,也不支持行級(jí)鎖和外鍵,因此當(dāng)INSERT(插入)或UPDATE(更新)數(shù)據(jù)時(shí)即寫(xiě)操作需要鎖定整個(gè)表,效率便會(huì)低一些。
不過(guò)和Innodb不同,MyIASM中存儲(chǔ)了表的行數(shù),于是SELECT COUNT(*) FROM TABLE時(shí)只需要直接讀取已經(jīng)保存好的值而不需要進(jìn)行全表掃描。
如果表的讀操作遠(yuǎn)遠(yuǎn)多于寫(xiě)操作且不需要數(shù)據(jù)庫(kù)事務(wù)的支持,那么MyIASM也是很好的選擇。

3.兩種引擎的選擇:

大尺寸的數(shù)據(jù)集趨向于選擇InnoDB引擎,因?yàn)樗С质聞?wù)處理和故障恢復(fù)。
數(shù)據(jù)庫(kù)的大小決定了故障恢復(fù)的時(shí)間長(zhǎng)短,InnoDB可以利用事務(wù)日志進(jìn)行數(shù)據(jù)恢復(fù),這會(huì)比較快。主鍵查詢?cè)贗nnoDB引擎下也會(huì)相當(dāng)快,不過(guò)需要注意的是如果主鍵太長(zhǎng)也會(huì)導(dǎo)致性能問(wèn)題。
大批的INSERT語(yǔ)句(在每個(gè)INSERT語(yǔ)句中寫(xiě)入多行,批量插入)在MyISAM下會(huì)快一些,但是UPDATE語(yǔ)句在InnoDB下則會(huì)更快一些,尤其是在并發(fā)量大的時(shí)候。

標(biāo)題名稱:MySQL數(shù)據(jù)庫(kù)引擎和索引
URL標(biāo)題:http://www.rwnh.cn/article48/ggdoep.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈ChatGPT、定制開(kāi)發(fā)App開(kāi)發(fā)、電子商務(wù)、外貿(mào)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化
金溪县| 舟曲县| 龙泉市| 阳信县| 台东市| 白银市| 湘阴县| 岐山县| 汝南县| 监利县| 新营市| 河曲县| 千阳县| 新营市| 元江| 江城| 临漳县| 嵊泗县| 望奎县| 巫溪县| 乌鲁木齐县| 玛多县| 英山县| 吉安市| 新民市| 武穴市| 象山县| 新绛县| 甘德县| 正定县| 望城县| 肥西县| 辽宁省| 新巴尔虎左旗| 黑河市| 张北县| 阿拉善右旗| 白水县| 涟源市| 新余市| 克山县|