个人认为,MongoDB不太适合用作商城APP的数据库:
能用是肯定能用的,但是不适合,开发过程中需要解决的问题会比较多且严峻;
单独只使用MongoDB是不适合的,可以用它解决一部分的问题,也就是关系型数据库和MongoDB配合着使用。
刚好最近接触的项目是一个商城项目并且使用了MongoDB数据库。
该商城系统使用MongoDB的目的是存储大量的商品信息,并且结合了搜索引擎lucene,以便于维护商品信息和进行查询。
说明商城系统使用MongoDB不是稀奇的事情。
一分钟了解MongoDB
MongoDB最大的特点是与MySQL等关系型数据库不同的是,他是基于分布式文件存储的数据库。它的存储的数据格式是最接近自然最面向对象的Json格式。
首先,mongdb一个最大的缺点就是不能进行多表联合查询,也就是说像mysql等关系型数据库里面的join语法在mongdb是不存在的。所以说如果你想要的数据确保在一张表里就能查出来就还好,如果涉及到多表的话难道你想用各种for循环去实现表的联合查询吗?
而实际上商城系统还是比较复杂的,业务不可能用一张表来表达,肯定会涉及到多表查询,因此mongdb可以用在商城系统中的一环,但是不能用于全部。
这个问题要看是什么样的商城?如果是作者可以小东西,商城非常简单,那还是可以的。现在比较火的前后端分离,以及全栈工程师,从前端写到后端,老顾看到有些视频和文章就是用MongoDB作为数据库进行开发的。
因地制宜
真实已经运营上线的商城系统是比较复杂的,设计到的技术点也是比较多的。好的系统不会只选择一种方案,而是遇到什么业务场景,选择不同的方案。
持久化方案
我们这里沟通一下持久化方案。小伙伴们经常挂到嘴边的数据库其实就是一种持久化方案,把数据保存到磁盘上面。经常用到的产品如:oracle,mysql,MongoDB,elasticsearch,hdfs,甚至redis都是。
不同的持久化产品有不同的特性,mongoDB采用的是kv存储的方式,高性能,天生支持分布式,常常是用来做数据分析的。他的弱点就是关联查询就比较麻烦。
而传统的mysql数据库关联查询就比较方便,但性能不高,搭建集群也比较麻烦。
先说结论,没有什么适合不适合,技术都是相通的。
离开业务空谈技术原型就是耍流氓。
电商的哪个环节可能可以使用文档型数据库mongodb
内存老虎,谁用坑谁,不知道现在还是不是,小项目小流量千万别用,本来1c1g机器能跑全套,跑mongo要8g内存才行,纯给云服务商打工了。
非常不推荐,mongo的话是文档型非关系型数据库,弱化了对象的概念,像这种大型的系统还是推荐mysql这种关系型数据库,mongo的话,你在使用的过程中,维护这些表的相互关系,时间上会花掉更多的时间。
性能不如mysql,唯一的好处就分布式方便,只能用来做日志系统,计算用的大数据存储。要不还是乖乖用MySQL吧,一个稍微复杂点的查询性能可以比mysql慢十多倍。 另外一点好处就是写入特快,不会因为单表数据越来越多就越来越慢。只合适做低频查询的数据存储
[灵光一闪]主要还是事务机智不理想。
这东西是收费的,你确定用? 一般互联网公司是不会用的。。