第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

有關MongoDB數(shù)據(jù)庫設計的問題

有關MongoDB數(shù)據(jù)庫設計的問題

狐的傳說 2019-04-08 11:17:33
問題一:是否collection越少越好,盡量把關系數(shù)據(jù)庫中分表表示的關系嵌套進文檔里?問題二:如果這樣的話,一句SQL能搞定的復雜查詢,mongodb也許要查詢多次。mongodb的查詢速度是否還比sql數(shù)據(jù)庫快?問題三:那mongodb的優(yōu)勢體現(xiàn)在哪?超大規(guī)模數(shù)據(jù)的mapreduce?方便拓展?我來舉個栗子吧:假設mysql中是這樣的(意思意思):authors(intid,charname,intage,charemail)articles(intid,chartitle,charcontent,longviewCount,intauthor_id)那么MongoDB中就可能是這個樣子:只有一個authorscollectionauthor{_id:newObectID("blublublu"),name:'portwatcher',age:'19',email:'root@pwhack.me',articles:[{title:'youguess',content:'Iamcontent',viewCount:52345},...]}問題來了,如果我要單獨查出所有作者的文章,并按瀏覽量來排序,要如何做?于是有了第二種設計方法,這也是nosql=notonlysql的體現(xiàn)。有authors和articles兩個collectionauthor{_id:newObectID("blublublu"),name:'portwatcher',age:'19',email:'root@pwhack.me'}article{_id:newObjectID("lalalala"),title:'youguess',content:'Iamcontent',viewCount:52345,author_id:'blublublu'}現(xiàn)在的問題是,如果我要把文章和作者的名字一起返回要怎么辦?1.是不是要查兩次,連兩次?如果連一次的話,有一些paas是不支持的(比如說bae,親測不支持)。這樣是否有失優(yōu)雅?2.如果在article里存一份author.name的話,當某個作者改了名字,文章顯示的作者名將無法更新,如果硬要一起更新,開銷是否太大?3.DBRef何時用比較合適?在這里,要怎么用?在這里栗子中,總結一下我們需要的東西:所有作者旗下的文章可以全部聚合返回,并按某種方式排序文章可以和與之匹配的作者名一起返回作者可以編輯自己的資料文章和作者都可以單獨插入可能比較啰嗦,大家諒解。要是有人能總結一下mongodb數(shù)據(jù)庫設計的一些原則就更好了~
查看完整描述

2 回答

?
qq_笑_17

TA貢獻1818條經(jīng)驗 獲得超7個贊

mongodb不是rdbms。你盡可以隨意發(fā)起任何select類型查詢。比如
for($i=0,$j<100000000;$i<$j;$i++)
$author=$mongo->getCollection('db','table')->findOne(array('author_id'=>id),array('author_name'=>1));
echo$author['author_name'];
mysql,這樣你就是瘋了。mongodb,這樣,很好。
你要根本的觀念上認為:mongodb是絕對有別于MySQL的。
當然,不可否認的是,查詢越少越好--#
                            
查看完整回答
反對 回復 2019-04-08
?
桃花長相依

TA貢獻1860條經(jīng)驗 獲得超8個贊

MongoDB有個叫DBRef的功能,可以引用另一個集合甚至另一個數(shù)據(jù)庫里的記錄,但目前這個功能在某些語言的驅動中支持還不是很好,不是很推薦,至于教程,應該可以搜到不少吧。
至于數(shù)據(jù)庫結構的設計,我認為應該從查詢的角度來設計,你希望以后做什么樣的查詢,就怎樣設計數(shù)據(jù)庫。
比如如果你每次獲取作者的時候都需要他的所有文章,就可以考慮第一種設計。
就作者和文章這個例子而言,我覺得采用第二種好一些。確實需要查兩次數(shù)據(jù)庫,但是你可以通過更高速的緩存,比如Memcache來減少查詢作者的那一次查詢,因為畢竟作者的更新頻率要低一些。
                            
查看完整回答
反對 回復 2019-04-08
  • 2 回答
  • 0 關注
  • 303 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號