Mongodb

今天聊聊mongodb。

Mongodb作為一種文檔數(shù)據(jù)庫剛出現(xiàn)的時候吸粉無數(shù),最吸引開發(fā)者的特性可能就在于它的結(jié)構(gòu)的自由性,你可以把完全不同結(jié)構(gòu)的數(shù)據(jù)保存到同一個collection(相當(dāng)于RDBMS里面的table),而且它支持在一條數(shù)據(jù)里面嵌套別的數(shù)據(jù),從而可以把相互關(guān)聯(lián)的數(shù)據(jù)以denormalized的形式保存在一起,從而可以“避免昂貴的join操作”。

我個人對mongodb一直不是太認(rèn)同,比如結(jié)構(gòu)的自由性,我覺得這是一個缺點(diǎn)而不是一個優(yōu)點(diǎn),它把我們本來可以讓數(shù)據(jù)庫可以幫我們管好的結(jié)構(gòu)信息弱化掉,放到代碼里面去了,這樣當(dāng)然自由,但是自由的代價是代碼需要管的東西更多了,個人覺得這絕對不是好事。一個類似的對比是靜態(tài)語言與動態(tài)語言的比較,我也是覺得靜態(tài)語言更好,因為讓別的事物(數(shù)據(jù)庫,語言)幫你更專業(yè)地做了更多的事情。

Mongodb聲稱的另一個“可以避免昂貴join操作”的特性,我感覺也是有點(diǎn)飲鴆止渴,這本來應(yīng)該是讓數(shù)據(jù)庫好好做,把join做得更好,代價更小,現(xiàn)在完全把數(shù)據(jù)denormalize掉了。denormalize這種手段本身沒有錯,錯的是不應(yīng)該被作為一個數(shù)據(jù)庫的關(guān)鍵特性,有點(diǎn)反智。

不過話又說回來,mongodb的意義可能跟其它nosql數(shù)據(jù)庫一樣探索了一種不一樣的途徑,豐富了數(shù)據(jù)庫生態(tài)的多樣性。但是總是感覺這種途徑這是一種折中方案,不是那么美好的方案。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容