更新時(shí)間:2021年11月09日16時(shí)22分 來源:傳智教育 瀏覽次數(shù):
差別在多方面,例如:數(shù)據(jù)的表示、查詢、關(guān)系、事務(wù)、模式的設(shè)計(jì)和定義、速度和性能。MongoDB 是由 C++語言編寫的,是一個(gè)基于分布式文件存儲的開源數(shù)據(jù)庫系統(tǒng)。在高負(fù)載的情況下,添加更多的節(jié)點(diǎn),可以保證服務(wù)器性能。
MongoDB 旨在為 WEB 應(yīng)用提供可擴(kuò)展的高性能數(shù)據(jù)存儲解決方案。
MongoDB 將數(shù)據(jù)存儲為一個(gè)文檔,數(shù)據(jù)結(jié)構(gòu)由鍵值(key=>value)對組成。MongoDB 文檔類似于 JSON 對象。字段值可以包含其他文檔,數(shù)組及文檔數(shù)組。
MongoDB 是一個(gè)面向文檔的數(shù)據(jù)庫,目前由 10gen 開發(fā)并維護(hù),它的功能豐富齊全,所以完全可以替代MySQL。與 MySQL 等關(guān)系型數(shù)據(jù)庫相比,MongoDB 的優(yōu)點(diǎn)如下:
?、偃跻恢滦?,更能保證用戶的訪問速度。
?、谖臋n結(jié)構(gòu)的存儲方式,能夠更便捷的獲取數(shù)據(jù)。
③內(nèi)置 GridFS,支持大容量的存儲。
?、軆?nèi)置 Sharding。
?、莸谌街С重S富。(這是與其他的 NoSQL 相比,MongoDB 也具有的優(yōu)勢)
?、扌阅軆?yōu)越:
MongoDB 本身它還算比較年輕的一個(gè)產(chǎn)品,所以它的問題,就是成熟度肯定沒有傳統(tǒng) MySQL 那么成熟穩(wěn)定。所以在使用的時(shí)候:
盡量使用穩(wěn)定版,不要在線上使用開發(fā)版,這是一個(gè)大原則;
另外一點(diǎn),備份很重要,MongoDB 如果出現(xiàn)一些異常情況,備份一定是要能跟上。除了通過傳統(tǒng)的復(fù)制的方式來做備份,離線備份也還是要有,不管你是用什么方式,都要有一個(gè)完整的離線備份。往往終究出現(xiàn)了特殊情況,它能幫助到你;另外,MongoDB 性能的一個(gè)關(guān)鍵點(diǎn)就是索引,索引是不是能有比較好的使用效率,索引是不是能夠放在內(nèi)存中,這樣能夠提升隨機(jī)讀寫的性能。如果你的索引不能完全放在內(nèi)存中,一旦出現(xiàn)隨機(jī)讀寫比較高的時(shí)候,它就會頻繁地進(jìn)行磁盤交換,這個(gè)時(shí)候,MongoDB 的性能就會急劇下降,會出現(xiàn)波動。
另外,MongoDB 還有一個(gè)明顯的缺點(diǎn),就是它占用的空間很大,因?yàn)樗鼘儆诘湫涂臻g換時(shí)間原則的類型。那么它的磁盤空間比普通數(shù)據(jù)庫會浪費(fèi)一些,而且到目前為止它還沒有實(shí)現(xiàn)在線壓縮功能,在 MongoDB 中頻繁的進(jìn)行數(shù)據(jù)增刪改時(shí),如果記錄變了,例如數(shù)據(jù)大小發(fā)生了變化,這時(shí)候容易產(chǎn)生一些數(shù)據(jù)碎片,出現(xiàn)碎片引發(fā)的結(jié)果,一個(gè)是索引會出現(xiàn)性能問題。
另外一個(gè)就是在一定的時(shí)間后,所占空間會莫名其妙地增大,所以要定期把數(shù)據(jù)庫做修復(fù),定期重新做索引,這樣會提升 MongoDB 的穩(wěn)定性和效率。在新的版本里,它已經(jīng)在實(shí)現(xiàn)在線壓縮,估計(jì)應(yīng)該在 2.0 版左右,應(yīng)該能夠?qū)崿F(xiàn)在線壓縮,可以在后臺執(zhí)行現(xiàn)在 repair DataBase 的一些操作。
如果那樣,就解決了目前困擾我們的大問題。
MySQL數(shù)據(jù)庫常用的搜索引擎有哪些,區(qū)別是什么?
Mongodb安裝教程【W(wǎng)indows系統(tǒng)圖文教程】
北京校區(qū)