新聞中心
MongoDB適合做商城app數(shù)據(jù)庫嗎?
剛好最近接觸的項(xiàng)目是一個(gè)商城項(xiàng)目并且使用了MongoDB數(shù)據(jù)庫。

創(chuàng)新互聯(lián)主營宜春網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,成都App定制開發(fā),宜春h5小程序開發(fā)搭建,宜春網(wǎng)站營銷推廣歡迎宜春等地區(qū)企業(yè)咨詢
該商城系統(tǒng)使用MongoDB的目的是存儲大量的商品信息,并且結(jié)合了搜索引擎lucene,以便于維護(hù)商品信息和進(jìn)行查詢。
說明商城系統(tǒng)使用MongoDB不是稀奇的事情。
一分鐘了解MongoDB
MongoDB最大的特點(diǎn)是與MySQL等關(guān)系型數(shù)據(jù)庫不同的是,他是基于分布式文件存儲的數(shù)據(jù)庫。它的存儲的數(shù)據(jù)格式是最接近自然最面向?qū)ο蟮腏son格式。
最重要的是,MongoDB,不支持復(fù)雜事務(wù)和連表查詢。
請注意這一點(diǎn)也就意味著MongoDB的適用場景是有一定局限性的,如果你想要復(fù)雜連表查詢和事務(wù),那么MongoDB將做不到。
如果你是想維護(hù)單表信息并且做頻繁得更新和查詢,而且數(shù)據(jù)量增長指數(shù)很嚇人,MongoDB非常適合。
宇文氏建議:
這也就意味著如果MongoDB用于電商系統(tǒng),那么很可能作為其中的一個(gè)數(shù)據(jù)存儲部分,多半會和MySQL等數(shù)據(jù)庫聯(lián)合使用。
關(guān)注“極客宇文氏”,一名有料的軟件工程師。
個(gè)人認(rèn)為,MongoDB不太適合用作商城APP的數(shù)據(jù)庫:
能用是肯定能用的,但是不適合,開發(fā)過程中需要解決的問題會比較多且嚴(yán)峻;
單獨(dú)只使用MongoDB是不適合的,可以用它解決一部分的問題,也就是關(guān)系型數(shù)據(jù)庫和MongoDB配合著使用。
概括地說一下MongoDB是什么:它是一個(gè)基于分布式文件存儲的非關(guān)系型數(shù)據(jù)庫;我們常見的MySQL、Oracle都是關(guān)系型數(shù)據(jù)庫,數(shù)據(jù)在關(guān)系型數(shù)據(jù)庫中都是通過表的格式展現(xiàn),可以看做二維表格;而MongoDB中的數(shù)據(jù),類似于JSON格式(BSON)。
MongoDB除了性能上的優(yōu)勢之外,我認(rèn)為最大的優(yōu)點(diǎn)就是數(shù)據(jù)模式自由,如果你愿意的話,可以將任何數(shù)據(jù)都保存到同一張表中(MongoDB中叫做Collection,等同于關(guān)系型數(shù)據(jù)庫中的Table);
比如像這樣,一條客戶信息,一條產(chǎn)品信息,兩條毫無交集的數(shù)據(jù),可以保存到同一個(gè)Collection中(比較極端的做法,實(shí)際使用的時(shí)候還是要區(qū)分開):
這個(gè)問題要看是什么樣的商城?如果是作者可以小東西,商城非常簡單,那還是可以的?,F(xiàn)在比較火的前后端分離,以及全棧工程師,從前端寫到后端,老顧看到有些視頻和文章就是用MongoDB作為數(shù)據(jù)庫進(jìn)行開發(fā)的。
因地制宜
真實(shí)已經(jīng)運(yùn)營上線的商城系統(tǒng)是比較復(fù)雜的,設(shè)計(jì)到的技術(shù)點(diǎn)也是比較多的。好的系統(tǒng)不會只選擇一種方案,而是遇到什么業(yè)務(wù)場景,選擇不同的方案。
持久化方案
我們這里溝通一下持久化方案。小伙伴們經(jīng)常掛到嘴邊的數(shù)據(jù)庫其實(shí)就是一種持久化方案,把數(shù)據(jù)保存到磁盤上面。經(jīng)常用到的產(chǎn)品如:oracle,mysql,MongoDB,elasticsearch,hdfs,甚至redis都是。
不同的持久化產(chǎn)品有不同的特性,mongoDB采用的是kv存儲的方式,高性能,天生支持分布式,常常是用來做數(shù)據(jù)分析的。他的弱點(diǎn)就是關(guān)聯(lián)查詢就比較麻煩。
而傳統(tǒng)的mysql數(shù)據(jù)庫關(guān)聯(lián)查詢就比較方便,但性能不高,搭建集群也比較麻煩。
總結(jié):要看具體的業(yè)務(wù)場景,選擇不同的持久化方案;不能脫離了業(yè)務(wù),脫離業(yè)務(wù)就是耍流氓了。
首先,mongdb一個(gè)最大的缺點(diǎn)就是不能進(jìn)行多表聯(lián)合查詢,也就是說像mysql等關(guān)系型數(shù)據(jù)庫里面的join語法在mongdb是不存在的。所以說如果你想要的數(shù)據(jù)確保在一張表里就能查出來就還好,如果涉及到多表的話難道你想用各種for循環(huán)去實(shí)現(xiàn)表的聯(lián)合查詢嗎?
而實(shí)際上商城系統(tǒng)還是比較復(fù)雜的,業(yè)務(wù)不可能用一張表來表達(dá),肯定會涉及到多表查詢,因此mongdb可以用在商城系統(tǒng)中的一環(huán),但是不能用于全部。
到此,以上就是小編對于mongodb支持事務(wù)嗎的問題就介紹到這了,希望這1點(diǎn)解答對大家有用。
新聞名稱:MongoDB適合做商城app數(shù)據(jù)庫嗎?(mongodb為什么不支持事務(wù))
當(dāng)前地址:http://fisionsoft.com.cn/article/dhidcgh.html


咨詢
建站咨詢
