欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
MySQL 常用數據存儲引擎區別 | Laravel China 社區

mysql有多種存儲引擎,目前常用的是 MyISAM 和 InnoDB 這兩個(gè)引擎,除了這兩個(gè)引擎以為還有許多其他引擎,有官方的,也有一些公司自己研發(fā)的。這篇文章主要簡(jiǎn)單概述一下常用常見(jiàn)的 MySQL 引擎,一則這是面試中常被問(wèn)到的問(wèn)題,二則這也是數據庫設計中不可忽略的問(wèn)題,用合適的引擎可以更好的適應業(yè)務(wù)場(chǎng)景,提高業(yè)務(wù)效率。

MyISAM#

MyISAM 是 mysql 5.5.5 之前的默認引擎,它支持 B-tree/FullText/R-tree 索引類(lèi)型。

鎖級別為表鎖,表鎖優(yōu)點(diǎn)是開(kāi)銷(xiāo)小,加鎖快;缺點(diǎn)是鎖粒度大,發(fā)生鎖沖動(dòng)概率較高,容納并發(fā)能力低,這個(gè)引擎適合查詢(xún)?yōu)橹鞯臉I(yè)務(wù)。

此引擎不支持事務(wù),也不支持外鍵。

MyISAM強調了快速讀取操作。它存儲表的行數,于是SELECT COUNT(*) FROM TABLE時(shí)只需要直接讀取已經(jīng)保存好的值而不需要進(jìn)行全表掃描。

InnoDB#

InnoDB 存儲引擎最大的亮點(diǎn)就是支持事務(wù),支持回滾,它支持 Hash/B-tree 索引類(lèi)型。

鎖級別為行鎖,行鎖優(yōu)點(diǎn)是適用于高并發(fā)的頻繁表修改,高并發(fā)是性能優(yōu)于 MyISAM。缺點(diǎn)是系統消耗較大,索引不僅緩存自身,也緩存數據,相比 MyISAM 需要更大的內存。

InnoDB 中不保存表的具體行數,也就是說(shuō),執行 select count(*) from table時(shí),InnoDB 要掃描一遍整個(gè)表來(lái)計算有多少行。

支持事務(wù),支持外鍵。

ACID 事務(wù)#

A 事務(wù)的原子性(Atomicity):指一個(gè)事務(wù)要么全部執行,要么不執行。也就是說(shuō)一個(gè)事務(wù)不可能只執行了一半就停止了。比如你從取款機取錢(qián),這個(gè)事務(wù)可以分成兩個(gè)步驟:1)劃卡,2)出錢(qián)。不可能劃了卡,而錢(qián)卻沒(méi)出來(lái),這兩步必須同時(shí)完成,要么就不完成。
C 事務(wù)的一致性(Consistency):指事務(wù)的運行并不改變數據庫中數據的一致性。例如,完整性約束了a+b=10,一個(gè)事務(wù)改變了a,那么b也應該隨之改變。
I 獨立性(Isolation):事務(wù)的獨立性也有稱(chēng)作隔離性,是指兩個(gè)以上的事務(wù)不會(huì )出現交錯執行的狀態(tài)。因為這樣可能會(huì )導致數據不一致。
D 持久性(Durability):事務(wù)的持久性是指事務(wù)執行成功以后,該事務(wù)所對數據庫所作的更改便是持久的保存在數據庫之中,不會(huì )無(wú)緣無(wú)故的回滾。

Memory#

Memory 是內存級別存儲引擎,數據存儲在內存中,所以他能夠存儲的數據量較小。

因為內存的特性,存儲引擎對數據的一致性支持較差。鎖級別為表鎖,不支持事務(wù)。但訪(fǎng)問(wèn)速度非???,并且默認使用 hash 索引。

Memory存儲引擎使用存在內存中的內容來(lái)創(chuàng )建表,每個(gè)Memory表只實(shí)際對應一個(gè)磁盤(pán)文件,在磁盤(pán)中表現為.frm文件。

總結#

MyISAMInnoDB
存儲結構每張表被存放在三個(gè)文件:frm-格定義MYD(MYData)-數據文件MYI(MYIndex)-索引文件所有的表都保存在同一個(gè)數據文件中(也可能是多個(gè)文件,或者是獨立的表空間文件),InnoDB表的大小只受限于操作系統文件的大小,一般為2GB
存儲空間MyISAM可被壓縮,存儲空間較小InnoDB的表需要更多的內存和存儲,它會(huì )在主內存中建立其專(zhuān)用的緩沖池用于高速緩沖數據和索引
可移植性、備份及恢復由于MyISAM的數據是以文件的形式存儲,所以在跨平臺的數據轉移中會(huì )很方便。在備份和恢復時(shí)可單獨針對某個(gè)表進(jìn)行操作免費的方案可以是拷貝數據文件、備份 binlog,或者用 mysqldump,在數據量達到幾十G的時(shí)候就相對痛苦了
事務(wù)安全不支持 每次查詢(xún)具有原子性支持 具有事務(wù)(commit)、回滾(rollback)和崩潰修復能力(crash recovery capabilities)的事務(wù)安全(transaction-safe (ACID compliant))型表
AUTO_INCREMENTMyISAM表可以和其他字段一起建立聯(lián)合索引InnoDB中必須包含只有該字段的索引
SELECTMyISAM更優(yōu)
INSERTInnoDB更優(yōu)
UPDATEInnoDB更優(yōu)
DELETEInnoDB更優(yōu) 它不會(huì )重新建立表,而是一行一行的刪除
COUNT without WHEREMyISAM更優(yōu)。因為MyISAM保存了表的具體行數InnoDB沒(méi)有保存表的具體行數,需要逐行掃描統計,就很慢了
COUNT with WHERE一樣一樣,InnoDB也會(huì )鎖表
只支持表鎖支持表鎖、行鎖 行鎖大幅度提高了多用戶(hù)并發(fā)操作的新能。但是InnoDB的行鎖,只是在WHERE的主鍵是有效的,非主鍵的WHERE都會(huì )鎖全表的
外鍵不支持支持
FULLTEXT全文索引支持不支持(5.6.4以上支持英文全文索引) 可以通過(guò)使用Sphinx從InnoDB中獲得全文索引,會(huì )慢一點(diǎn)

互聯(lián)網(wǎng)項目中隨著(zhù)硬件成本的降低及緩存、中間件的應用,一般我們選擇都以 InnoDB 存儲引擎為主,很少再去選擇 MyISAM 了。而業(yè)務(wù)真發(fā)展的一定程度時(shí),自帶的存儲引擎無(wú)法滿(mǎn)足時(shí),這時(shí)公司應該是有實(shí)力去自主研發(fā)滿(mǎn)足自己需求的存儲引擎或者購買(mǎi)商用的存儲引擎了。

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
PHP面試題(網(wǎng)絡(luò ))
2017最新PHP初級經(jīng)典面試題目匯總(下篇)
MySQL數據庫開(kāi)發(fā)常見(jiàn)問(wèn)題及幾點(diǎn)優(yōu)化!
數據庫表結構設計方法及原則(li)
MYSQL存儲引擎
MySQL必知存儲引擎
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久