欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

MongoDB適合做商城app數據庫嗎?

傅智翔2年前13瀏覽0評論

個人認為,MongoDB不太適合用作商城APP的數據庫:

  • 能用是肯定能用的,但是不適合,開發過程中需要解決的問題會比較多且嚴峻;

  • 單獨只使用MongoDB是不適合的,可以用它解決一部分的問題,也就是關系型數據庫和MongoDB配合著使用。

MongoDB是什么,以及它的優點

概括地說一下MongoDB是什么:它是一個基于分布式文件存儲的非關系型數據庫;我們常見的MySQL、Oracle都是關系型數據庫,數據在關系型數據庫中都是通過表的格式展現,可以看做二維表格;而MongoDB中的數據,類似于JSON格式(BSON)。

MongoDB除了性能上的優勢之外,我認為最大的優點就是數據模式自由,如果你愿意的話,可以將任何數據都保存到同一張表中(MongoDB中叫做Collection,等同于關系型數據庫中的Table);

比如像這樣,一條客戶信息,一條產品信息,兩條毫無交集的數據,可以保存到同一個Collection中(比較極端的做法,實際使用的時候還是要區分開):

為什么說MongoDB不太適合用作商城應用的數據庫

  • 首先,商城應用對事務一致性要求非常高,而MongoDB在事務的支持上,比較晚熟;MongoDB在3.0左右的版本,開始支持單文檔的事務,到了4.0以上的版本,開始支持多文檔事務;MongoDB發展的越來越好,但是在事務支持上,和關系型數據庫相比確實還是有差距。

  • 第二,通常商城相關的業務,表結構相對都是比較成熟且固定的,比如客戶表、商品表、訂單表、支付表等等,同一個維度的數據結構基本都是相同的,比如客戶都會有姓名、手機號、收貨地址,這并沒有發揮MongoDB數據結構自由的優勢,關系型數據庫已經可以很好地支撐。

  • 第三,MongoDB在多表關聯方面,優勢不大,比如需要查詢客戶下面所有的訂單,那么可能需要關聯客戶表和訂單表;而讓MongoDB來實現,訂單可以作為客戶下面的一個子文檔來存儲,大概就是這個樣子:

總結來說,MongoDB更多適用于大數據量、高并發、弱事務、數據結構“隨意”且“善變”的場景,是對關系型數據庫的補充。


我將持續分享Java開發、架構設計、程序員職業發展等方面的見解,希望能得到你的關注。