千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機構(gòu)

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術(shù)干貨  > 一個大型的SNS網(wǎng)站,是否適合數(shù)據(jù)庫全部用mongodb來做,為什么?

一個大型的SNS網(wǎng)站,是否適合數(shù)據(jù)庫全部用mongodb來做,為什么?

來源:千鋒教育
發(fā)布人:xqq
時間: 2023-10-13 07:26:34 1697153194

一、一個大型的SNS網(wǎng)站,是否適合數(shù)據(jù)庫全部用mongodb來做,為什么

一個大型的SNS網(wǎng)站,數(shù)據(jù)庫不適合全部用mongodb來做,原因如下。

1、數(shù)據(jù)一致性問題

MongoDB雖然支持事務(wù),但在某些特定場景下,如對多文檔的復雜操作仍然存在局限性。相較于傳統(tǒng)的關(guān)系型數(shù)據(jù)庫,在數(shù)據(jù)一致性方面還存在一定的問題。

2、存儲空間占用較大

MongoDB在存儲文檔的時候會將字段名稱存儲在每個文檔中,這會導致存儲空間占用較大。在大型SNS網(wǎng)站存儲海量數(shù)據(jù)時,這可能會成為一個問題。

3、不支持 JOIN 操作

MongoDB不支持關(guān)系型數(shù)據(jù)庫中類似于JOIN操作的高級查詢功能,這意味著如果需要多表查詢,開發(fā)人員需要自己手動處理,增加系統(tǒng)的復雜度和耗費更多的時間和精力。

4、缺乏豐富的管理工具和資源

相較于傳統(tǒng)的關(guān)系型數(shù)據(jù)庫,MongoDB缺乏成熟的管理工具和豐富的資源。在大規(guī)模的SNS網(wǎng)站中,這可能會導致管理和維護數(shù)據(jù)庫變得更加困難和耗時。

5、適用場景有限

MongoDB適合存儲非常規(guī)或更加復雜的數(shù)據(jù)類型,例如嵌套文檔和數(shù)組等。然而,對于結(jié)構(gòu)化類型的數(shù)據(jù)(如用戶登錄、訂單管理等)來說,使用一種傳統(tǒng)的關(guān)系型數(shù)據(jù)庫可能會更加適合。

二、MongoDB概述

1、簡介

MongoDB是一個基于分布式文件存儲的數(shù)據(jù)庫。由C++語言編寫。旨在為WEB應(yīng)用提供可擴展的高性能數(shù)據(jù)存儲解決方案。

MongoDB是一個介于關(guān)系數(shù)據(jù)庫和非關(guān)系數(shù)據(jù)庫之間的產(chǎn)品,是非關(guān)系數(shù)據(jù)庫當中功能最豐富,最像關(guān)系數(shù)據(jù)庫的。它支持的數(shù)據(jù)結(jié)構(gòu)非常松散,是類似json的bson格式,因此可以存儲比較復雜的數(shù)據(jù)類型。Mongo最大的特點是它支持的查詢語言非常強大,其語法有點類似于面向?qū)ο蟮牟樵冋Z言,幾乎可以實現(xiàn)類似關(guān)系數(shù)據(jù)庫單表查詢的絕大部分功能,而且還支持對數(shù)據(jù)建立索引。

簡而言之,MongoDB是文檔型的NoSQL數(shù)據(jù)庫,數(shù)據(jù)以文檔(對應(yīng)關(guān)系型數(shù)據(jù)庫的記錄)的形式在MongoDB中保存,文檔實際上就是一個個JSON字符串,使用JSON的好處是非常直觀,通過一系列的Key-Value鍵值對來表示數(shù)據(jù),符合我們的閱讀習慣。

2、特點

高性能

MongoDB提供高性能的數(shù)據(jù)持久性。對嵌入式數(shù)據(jù)模型的支持減少了數(shù)據(jù)庫系統(tǒng)上的IO活動。索引支持更快的查詢,并且包含嵌入式文檔和數(shù)組的鍵。

文本索引解決搜索的需求;TTL索引解決歷史數(shù)據(jù)自動過期的需求;地理位置索引可用于構(gòu)建各種 O2O 應(yīng)用。

高可用性

MongoDB的復制工具稱為副本集(reolica set),它包含提供自動故障轉(zhuǎn)移和數(shù)據(jù)冗余。

高可用性

MongoDB提供了水平可擴展性作為其核心功能的一部分。分片將數(shù)據(jù)分布在一組集群的機器上。(海量數(shù)據(jù)存儲、服務(wù)能力水平擴展)

從3.4起,MongoDB支持基于片鍵創(chuàng)建數(shù)據(jù)區(qū)域,在一個平衡的集群中,MongoDB將一個區(qū)域所覆蓋的讀寫只定向到該區(qū)域內(nèi)的那些片。

豐富的查詢支持

MongoDB支持豐富的查詢語言,支持讀寫(CRUD)操作、比如數(shù)據(jù)聚合、文本搜索、地理空間查詢等。

其他特點

如動態(tài)模式、靈活的文檔模型。

3、應(yīng)用場景

游戲場景:使用MongoDB存儲游戲用戶信息、裝備、積分等,直接以內(nèi)嵌文檔的形式存儲,方便查詢、更新。物流場景:使用MongoDB存儲訂單信息、訂單狀態(tài)、物流信息,訂單狀態(tài)在運送過程中飛速迭代、以MongoDB內(nèi)嵌數(shù)組的形式來存儲,一次查詢就能將訂單所有的變更查出來,牛逼plus。社交場景:使用MongoDB存儲用戶信息,朋友圈信息,通過地理位置索引實現(xiàn)附近的人、定位功能。物聯(lián)網(wǎng)場景:使用MongoDB存儲設(shè)備信息、設(shè)備匯報的日志信息、并對這些信息進行多維度分析。視頻直播:使用MongoDB存儲用戶信息、點贊互動信息。

4、語言支持

MongoDB有官方的驅(qū)動如下:

CC++C# / .NETErlangHaskellJavaJavaScriptLispnode.JSPerlPHPPythonRubyScalaGo

5、應(yīng)用案例

Craiglist,上使用MongoDB的存檔數(shù)十億條記錄。FourSquare,基于位置的社交網(wǎng)站,在Amazon EC2的服務(wù)器上使用MongoDB分享數(shù)據(jù)。Shutterfly,以互聯(lián)網(wǎng)為基礎(chǔ)的社會和個人出版服務(wù),使用MongoDB的各種持久性數(shù)據(jù)存儲的要求。bit.ly, 一個基于Web的網(wǎng)址縮短服務(wù),使用MongoDB的存儲自己的數(shù)據(jù)。spike.com,一個MTV網(wǎng)絡(luò)的聯(lián)營公司, spike.com使用MongoDB的。Intuit公司,一個為小企業(yè)和個人的軟件和服務(wù)提供商,為小型企業(yè)使用MongoDB的跟蹤用戶的數(shù)據(jù)。sourceforge.net,資源網(wǎng)站查找,創(chuàng)建和發(fā)布開源軟件免費,使用MongoDB的后端存儲。etsy.com ,一個購買和出售手工制作物品網(wǎng)站,使用MongoDB。紐約時報,名列前茅的在線新聞門戶網(wǎng)站之一,使用MongoDB。CERN,知名的粒子物理研究所,歐洲核子研究中心大型強子對撞機的數(shù)據(jù)使用MongoDB。

延伸閱讀1:什么是SNS

SNS俗稱社會性網(wǎng)絡(luò)服務(wù),是一種新興的網(wǎng)絡(luò)應(yīng)用,是指人和人之間通過朋友、理想、交易、興趣、愛好等一定關(guān)系建立起來的社交化網(wǎng)絡(luò)結(jié)構(gòu),它是基于現(xiàn)實六度關(guān)系理論發(fā)展起來的社會網(wǎng)絡(luò)關(guān)系系統(tǒng)網(wǎng)絡(luò)形態(tài)。具有代表性的如微博、人人網(wǎng)、開心網(wǎng)等,它們擁有大量的用戶群體,對很多人特別是年輕群體有著深刻的影響,由于高昂的人氣,而蘊含著巨大商機,引發(fā)更多的企業(yè)以SNS營銷創(chuàng)造更大價值。

聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強師集結(jié),手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內(nèi)將與您1V1溝通
免費領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學 138****2860 剛剛成功領(lǐng)取
王同學 131****2015 剛剛成功領(lǐng)取
張同學 133****4652 剛剛成功領(lǐng)取
李同學 135****8607 剛剛成功領(lǐng)取
楊同學 132****5667 剛剛成功領(lǐng)取
岳同學 134****6652 剛剛成功領(lǐng)取
梁同學 157****2950 剛剛成功領(lǐng)取
劉同學 189****1015 剛剛成功領(lǐng)取
張同學 155****4678 剛剛成功領(lǐng)取
鄒同學 139****2907 剛剛成功領(lǐng)取
董同學 138****2867 剛剛成功領(lǐng)取
周同學 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
DBeaver怎么保持數(shù)據(jù)庫連接?

一、DBeaver保持數(shù)據(jù)庫連接的方法1、連接到數(shù)據(jù)庫打開DBeaver并選擇連接到您的目標數(shù)據(jù)庫。選擇適當?shù)臄?shù)據(jù)庫類型,輸入必要的連接信息,如主機...詳情>>

2023-10-13 09:05:04
Kettle連接MySQL為什么會報錯?

一、Kettle連接MySQL會報錯的原因1、驅(qū)動程序缺失Kettle需要使用MySQL的JDBC驅(qū)動程序來連接MySQL數(shù)據(jù)庫。如果沒有正確配置或提供JDBC驅(qū)動程序,...詳情>>

2023-10-13 08:53:41
wait()、sleep()、join()和yield()區(qū)別是什么?

一、wait()wait()方法是Object類中的方法,主要用于線程間的同步和協(xié)作。當一個線程調(diào)用某個對象的wait()方法時,它會釋放該對象的鎖,并進入等...詳情>>

2023-10-13 08:45:29
什么是Caché數(shù)據(jù)庫?

一、對象訪問通過對象訪問,開發(fā)人員可以使用面向?qū)ο蟮木幊陶Z言(如Java、C#等)直接操作數(shù)據(jù)庫中的對象。這種方式提供了更加直觀和便捷的數(shù)據(jù)...詳情>>

2023-10-13 08:42:01
mysql group commit為什么要保證binlog和redo log提交的順序一致?

一、為什么要保證binlog和redo log提交的順序一致MySQL為了保證master和slave的數(shù)據(jù)一致性,就必須保證binlog和InnoDB redo日志的一致性(因為...詳情>>

2023-10-13 08:25:24
久久亚洲中文字幕精品一区四,亚洲日本另类欧美一区二区,久久久久久久这里只有免费费精品,高清国产激情视频在线观看
亚洲人成在线影院 | 日韩精品一区二区五月婷 | 日本一区中文字幕免费 | 熟女少妇中文字幕久久 | 亚洲日本va中文字幕 | 自产一区二区三区国产 |