MangoDB
1.簡介
1.1使用場景
- 游戲場景,使用MongoDB存儲游戲用戶信息,用戶的裝備、積分等直接以內(nèi)嵌文檔的形式存儲,方便查詢、更新(一個角色的所有信息就用一個文檔存儲)
- 物流場景,使用MongoDB存儲訂單信息,訂單狀態(tài)在運(yùn)送過程中會不斷更新,以MongoDB內(nèi)嵌數(shù)組的形式來存儲,一次查詢就能講訂單所有的變更讀取出來。(如果是Mysql進(jìn)行存儲的話,那頻繁的去update物流信息,造成效率更低了)
- 社交場景,使用MongoDB存儲用戶信息,以及用戶發(fā)表的朋友圈信息,通過地理位置索引實現(xiàn)附近的人、地點等功能
- 物聯(lián)網(wǎng)場景,使用MongoDB存儲所有接入的智能設(shè)備信息,以及設(shè)備匯報的日志信息,并對這些信息進(jìn)行多維度的分析
- 視頻直播,使用MongoDB存儲用戶信息,禮物信息等
1.2性能優(yōu)越
- 在使用場合下,千萬級別的文檔對象,近10G的數(shù)據(jù),對有索引的ID查詢不會比Mysql慢(眾所周知Mysql的索引查詢速度是很快的)
- 而對非索引字段的查詢,則是全面勝出
- mysql實際無法勝任大量數(shù)據(jù)量下任意字段的查詢,而mongodb查詢性能實在牛
- 下面可以看一組測試數(shù)據(jù)
1.3 MongoDB的優(yōu)點
1.3.1 弱一致性(最終一致),更能保證用戶的訪問速度
不保證執(zhí)行過程中數(shù)據(jù)的一致性,但是可以保證最終結(jié)果的數(shù)據(jù)一致性。因為在分布式環(huán)境下,各個節(jié)點做數(shù)據(jù)同步的時候,讀到的數(shù)據(jù)不一定是最新的數(shù)據(jù)
1.3.2 文檔結(jié)構(gòu)的存儲方式,能夠更便捷的獲取數(shù)據(jù)
以文檔為數(shù)據(jù)結(jié)構(gòu),減少了連接查詢,支持JSON語法,每個文檔所存儲的屬性不同,文檔里面還可以嵌套文檔,提高查詢效率
1.3.3?內(nèi)置GridFS,支持大容量的存儲
- GridFS是一個出色的分布式文件系統(tǒng),可以支持海量的數(shù)據(jù)存儲(可以做大數(shù)據(jù)相關(guān)的操作)
- 內(nèi)置了GridFS的MongoDB,能夠滿足對大數(shù)據(jù)集的快速范圍查詢
1.3.4內(nèi)置Sharding分片
1PB = 1024TB
?1.3.5?第三方支持豐富
1.4 MongoDB的缺點
1.4.1?事務(wù)支持不友好
- 所以事務(wù)要求嚴(yán)格的系統(tǒng)(銀行系統(tǒng))肯定不能用它。
1.4.2?占用空間過大
總結(jié)
- 上一篇: 《日志管理与分析权威指南》一2.3 良好
- 下一篇: [Leedcode][JAVA][第76