當前位置:首頁 » 存儲配置 » mongodb適合存儲什麼數據

mongodb適合存儲什麼數據

發布時間: 2024-07-27 22:46:38

㈠ 哪些數據需要用mongodb存儲

你說的這種情況在mongdb中直接是橫向把所有信息展開的,例如課程信息表,那它會把課程分類也包含進去,只要涉及到頁面的查詢信息都會包含在這張表中,相當於一個表去處理一個頁面的查詢。
例如 班級表(1 1班 , 2 2班 , 3 3班)
學生表(01 1 張三 , 02 1 李四 , 03 2 王五) --中間的 1 2 表示班級id
這種是在關系資料庫中很常見的設計,但在mongdb中會變為
班級表(1 1班 , 2 2班 , 3 3班)
學生表(01 張三 1 1班 , 02 李四 1 1班 , 03 王五 2 2班)

㈡ mongoDB閫傜敤浠涔堝満鍚堝憿錛

鏍規嵁瀹樻柟緗戠珯鐨勬弿榪幫紝Mongo閫傚悎鐢ㄤ簬浠ヤ笅鍦烘櫙錛
鈼嗙綉絝欐暟鎹錛歁ongo闈炲父閫傚悎瀹炴椂鐨勬彃鍏ワ紝鏇存柊涓庢煡璇錛屽苟鍏峰囩綉絝欏疄鏃舵暟鎹瀛樺偍鎵闇鐨勫嶅埗鍙婇珮搴︿幾緙╂с
鈼嗙紦瀛橈細鐢變簬鎬ц兘寰堥珮錛孧ongo涔熼傚悎浣滀負淇℃伅鍩虹璁炬柦鐨勭紦瀛樺眰銆傚湪緋葷粺閲嶅惎涔嬪悗錛岀敱Mongo鎼寤虹殑鎸佷箙鍖栫紦瀛樺眰鍙浠ラ伩鍏嶄笅灞傜殑鏁版嵁婧愯繃杞姐
鈼嗗ぇ灝哄革紝浣庝環鍊肩殑鏁版嵁錛氫嬌鐢ㄤ紶緇熺殑鍏崇郴鍨嬫暟鎹搴撳瓨鍌ㄤ竴浜涙暟鎹鏃跺彲鑳戒細姣旇緝鏄傝吹錛屽湪姝や箣鍓嶏紝寰堝氭椂鍊欑▼搴忓憳寰寰浼氶夋嫨浼犵粺鐨勬枃浠惰繘琛屽瓨鍌ㄣ
鈼嗛珮浼哥緝鎬х殑鍦烘櫙錛歁ongo闈炲父閫傚悎鐢辨暟鍗佹垨鏁扮櫨鍙版湇鍔″櫒緇勬垚鐨勬暟鎹搴撱侻ongo鐨勮礬綰垮浘涓宸茬粡鍖呭惈瀵筂apRece寮曟搸鐨勫唴緗鏀鎸併
鈼嗙敤浜庡硅薄鍙奐SON鏁版嵁鐨勫瓨鍌錛歁ongo鐨凚SON鏁版嵁鏍煎紡闈炲父閫傚悎鏂囨。鍖栨牸寮忕殑瀛樺偍鍙婃煡璇銆
鑷鐒訛紝MongoDB鐨勪嬌鐢ㄤ篃浼氭湁涓浜涢檺鍒訛紝渚嬪傚畠涓嶉傚悎錛
鈼嗛珮搴︿簨鍔℃х殑緋葷粺錛氫緥濡傞摱琛屾垨浼氳$郴緇熴備紶緇熺殑鍏崇郴鍨嬫暟鎹搴撶洰鍓嶈繕鏄鏇撮傜敤浜庨渶瑕佸ぇ閲忓師瀛愭у嶆潅浜嬪姟鐨勫簲鐢ㄧ▼搴忋
鈼嗕紶緇熺殑鍟嗕笟鏅鴻兘搴旂敤錛氶拡瀵圭壒瀹氶棶棰樼殑BI鏁版嵁搴撲細瀵逛駭鐢熼珮搴︿紭鍖栫殑鏌ヨ㈡柟寮忋傚逛簬姝ょ被搴旂敤錛屾暟鎹浠撳簱鍙鑳芥槸鏇村悎閫傜殑閫夋嫨銆

㈢ mongodb資料庫適合做什麼

mongodb眾所周知不支持事務,所以需要強事務的業務根本不能考慮mongodb。
mongodb的優勢就是文檔存儲:
1. 業務經常變動,需要不時的添加欄位,那麼mongodb比較適合,關系型資料庫添加欄位的復雜度也還好
2. 嵌套文檔,業務數據比較復雜,適合嵌套文檔式存儲,那麼mongodb非常合適,這個關系型資料庫比較難搞,雖然MySQL和pg也有文檔存儲,但MySQL的不成熟,pg畢竟現在生產中使用還是偏少,個人也不了解,這里不談。但這不僅僅這一點優勢,具體下面會細說。
3. upsert支持,查詢速度也不慢
4. 高可用的副本集支持
5. 查詢語法非常豐富,嵌套文檔查詢功能非常強大,不是重度用戶可能不能理解
下面說說一個具體的使用事例:
項目的一條數據在10kb左右,如果使用關系型資料庫那麼需要將這條數據拆分成大概幾百條左右,建造多個表,設計較復雜,這種數據大概在一百萬條左右,想想拆分後在十幾億的數據量就可怕。打平後的數據什麼DB也都可以拿下,只是一百萬變十幾億比較恐怖而已。
如果採用MySQL存儲,每次查詢需要使用外鍵查詢多個表,從這些表中拉取數據,性能肯定要下降很多,比不上只在一個表查詢,而且只拉取少兩個數量級的數據。查詢也還好,業務允許可以對結果做緩存,放到redis里去。
但是重點來了,需求要增量更新部分數據,這時候需要更新多個表,根本沒法做到原子性(注意事務不是原子操作),當然也可以使用cas等技術補償,達到最終一致性。但使用mongodb存儲只需要update一條數據,對相應的嵌套文檔中內容更新,可以做到原子性,是不是很方便?
推薦學習《python教程》
具體說說該項目的難點,查詢無法使用緩存,可能會很吃驚,但是業務決定了確實做不了,而且增量更新的量達到上萬的QPS,如果不能保證原子性想想多麼可怕!
所以mongodb在這里幫了大忙,關系型資料庫解決不了這個難題。
有人可能要問,mongodb沒有事務,上游數據寫入也會有問題,你不可能所有數據都存一個表吧?
當然不是的,我們mongodb里的數據是從MySQL中清洗出來存到mongodb中的,mongodb只做單點的業務需求,綜合的數據還是在MySQL中。
此項目我們用了上百個副本集,保證系統的高可用,這些副本集配置只要一條shell就搞定,如果用MySQL的主從不知道怎麼配(我自己不懂),估計DBA得忙死,而該項目完全不需要也沒用到DBA。
說了這么多mongo的優點,也說說他的缺點:
1. 查詢優化器和MySQL沒法比
2. 不支持reload,只能冷重啟,初始化配置的時候比較麻煩
3. 沒有事務,不敢存儲第一手數據,多用來做備份數據的存儲
mongodb可以做很多事情,取決於你腦洞,性能不差,存一些相對不重要的數據,mongodb嵌套文檔功能強大,多看看官方文檔挖掘挖掘有用信息,每次都能發現驚喜。

㈣ mongodb是非結構化資料庫嗎

Mongodb用於存儲非結構化數據,尤其擅長存儲json格式的數據。存儲的量大概在10億級別,再往上性能就下降了,除非另外分庫。
Hbase是架構在hdfs上的列式存儲,擅長rowkey的快速查詢,但模糊匹配查詢(其實是前模糊或全模糊)不擅長,但存儲的量可以達到百億甚至以上,比mongodb的存儲量大多了。

㈤ mongodb鏄鍏崇郴鍨嬫暟鎹搴撳悧

MongoDB鏄闈炲叧緋誨瀷鏁版嵁搴撱

MongoDB鍙堝彨鏂囨。鍨嬫暟鎹搴擄紝鎴栭潪鍏崇郴鍨嬫暟鎹搴擄紝鏄涓縐峃oSQL鐨勬暟鎹搴擄紝鏄緗戠珯鏁版嵁搴撶殑浼橀夈侻ongoDB灝嗘暟鎹瀛樺偍涓烘枃妗o紝鑰屾枃妗f槸鍏鋒湁閿鍊煎圭殑鏁版嵁緇撴瀯錛岄敭鐨勭被鍨嬪彲浠ユ槸瀛楃︿覆銆佹暟緇勩佸硅薄絳夛紝鍊肩殑綾誨瀷鍙浠ユ槸瀛楃︿覆銆佹暟瀛椼佹棩鏈熴佹暟緇勭瓑銆

MongoDB鐨勬枃妗f暟鎹妯″瀷鎻愪緵浜嗘洿楂樼殑鐏墊椿鎬у拰鍙鎵╁睍鎬э紝鍥犱負瀹冨彲浠ヨ交鏉懼湴閫傚簲澶嶆潅鐨勬暟鎹緇撴瀯銆傝繖縐嶇伒媧繪т嬌寰桵ongoDB闈炲父閫傚悎鐢ㄤ簬Web搴旂敤紼嬪簭銆佺Щ鍔ㄥ簲鐢ㄧ▼搴忓拰澶ф暟鎹搴旂敤紼嬪簭銆傛ゅ栵紝MongoDB榪樻彁渚涗簡涓板瘜鐨勬煡璇㈣璦鍜岀儲寮曞姛鑳斤紝浣垮緱鏁版嵁鏌ヨ㈠拰媯緔㈤潪甯告柟渚垮拰楂樻晥銆

MongoDB浣跨敤鍘熺悊錛

鎵璋撯滈潰鍚戦泦鍚堚濓紝鎰忔濇槸鏁版嵁琚鍒嗙粍瀛樺偍鍦ㄦ暟鎹闆嗕腑錛岃縐頒負涓涓闆嗗悎銆傛瘡涓闆嗗悎鍦ㄦ暟鎹搴撲腑閮芥湁涓涓鍞涓鐨勬爣璇嗗悕錛屽苟涓斿彲浠ュ寘鍚鏃犻檺鏁扮洰鐨勬枃妗c傞泦鍚堢殑姒傚康綾諱技鍏崇郴鍨嬫暟鎹搴撻噷鐨勮〃錛屼笉鍚岀殑鏄瀹冧笉闇瑕佸畾涔変換浣曟ā寮忋侼ytroMegaRAID鎶鏈涓鐨勯棯瀛橀珮閫熺紦瀛樼畻娉曪紝鑳藉熷揩閫熻瘑鍒鏁版嵁搴撳唴澶ф暟鎹闆嗕腑鐨勭儹鏁版嵁錛屾彁渚涗竴鑷寸殑鎬ц兘鏀硅繘銆

妯″紡鑷鐢憋紝鎰忓懗鐫瀵逛簬瀛樺偍鍦╩ongodb鏁版嵁搴撲腑鐨勬枃浠訛紝鎴戜滑涓嶉渶瑕佺煡閬撳畠鐨勪換浣曠粨鏋勫畾涔夈傚傛灉闇瑕佺殑璇濓紝浣犲畬鍏ㄥ彲浠ユ妸涓嶅悓緇撴瀯鐨勬枃浠跺瓨鍌ㄥ湪鍚屼竴涓鏁版嵁搴撻噷銆傚瓨鍌ㄥ湪闆嗗悎涓鐨勬枃妗o紝琚瀛樺偍涓洪敭-鍊煎圭殑褰㈠紡銆傞敭鐢ㄤ簬鍞涓鏍囪瘑涓涓鏂囨。錛屼負瀛楃︿覆綾誨瀷錛岃屽煎垯鍙浠ユ槸鍚勭嶅嶆潅鐨勬枃浠剁被鍨嬨傛垜浠縐拌繖縐嶅瓨鍌ㄥ艦寮忎負BSON銆

浠ヤ笂鍐呭瑰弬鑰冿細鐧懼害鐧劇-mongodb

㈥ mongodb是什麼

MongoDB是一個基於分布式文件存儲 的資料庫。由C++語言編寫。旨在為WEB應用提供可擴展的高性能數據存儲解決方案。
MongoDB是一個介於關系資料庫和非關系資料庫之間的產品,是非關系資料庫當中功能最豐富,最像關系資料庫的。它支持的數據結構
非常鬆散,是類似json的bson格式,因此可以存儲比較復雜的數據類型。Mongo最大的特點是它支持的查詢語言非常強大,其語法有點
類似於面向對象的查詢語言,幾乎可以實現類似關系資料庫單表查詢的絕大部分功能,而且還支持對數據建立索引。

熱點內容
C語言讀盤 發布:2024-11-25 18:41:55 瀏覽:572
我的世界伺服器被破壞了怎麼恢復 發布:2024-11-25 18:27:57 瀏覽:329
日常電瓶叉車配置有哪些 發布:2024-11-25 18:21:17 瀏覽:361
java的二分查找 發布:2024-11-25 18:21:11 瀏覽:23
買帕薩特選哪個配置 發布:2024-11-25 18:17:23 瀏覽:224
編程很掙錢嗎 發布:2024-11-25 18:13:43 瀏覽:935
接受btc支付的香港雲伺服器 發布:2024-11-25 18:02:09 瀏覽:909
華為手機怎麼密碼解鎖 發布:2024-11-25 17:56:34 瀏覽:938
伺服器管理員怎麼編輯別人背包 發布:2024-11-25 17:55:45 瀏覽:930
plc編程T 發布:2024-11-25 17:55:02 瀏覽:268