当前位置:首页 > 软件开发 > 正文

mongodb数据库 为什么用mongodb而不用MySQL

mongodb数据库 为什么用mongodb而不用MySQL

老铁们,大家好,相信还有很多朋友对于mongodb数据库和为什么用mongodb而不用MySQL的相关问题不太懂,没关系,今天就由我来为大家分享分享mongodb数据库...

老铁们,大家好,相信还有很多朋友对于mongodb数据库和为什么用mongodb而不用MySQL的相关问题不太懂,没关系,今天就由我来为大家分享分享mongodb数据库以及为什么用mongodb而不用MySQL的问题,文章篇幅可能偏长,希望可以帮助到大家,下面一起来看看吧!

MongoDB适合做商城app数据库吗

个人认为,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开发、架构设计、程序员职业发展等方面的见解,希望能得到你的关注。

数据科学家如何选择mysql、mongodb等数据库

数据库选型问题:

我觉得首先得根据业务场景来决定,无论选择哪种数据库最终都是为了解决实际问题的。其次再考虑成本,开发人员对数据库的熟练度,维护难易程度。

一、业务场景

问题上说的两种数据库区别还是蛮大的,mysql是传统关系型数据库,在处理小型系统和关系型数据时有很多的优点,什么支持多语言,开源,免费等等百度上就有很多。目前很多中小型公司都是用mysql。如果数据量大,对安全性能要求高,还不差钱的公司可以选择另外一种关系型数据库Oracle。monogoDB是非关系型的nosql数据库,属于文档型数据库,存储是以json、String等key-value键值对形式。通常用的较多的nosql数据库是redis。monodb使用的少(个人觉得)。这类非关系型数据库通常用来存储一些不会经常修改的数据,用来做缓存使用。另外还有使用monogodb开发商城的购物车功能。

二、使用成本

mysql、redis、monogodb都是可以免费使用,成本应该只有服务器存储空间成本,而oracle公司使用的话是需要缴费的。

三、工程师成本

这个我觉得还是传统的关系型数据库使用的人多,相应的资料也多。用起来应该能更快上手。应该没有后端工程师不会使用mysql、oracle等关系型数据库的。

四、维护难易程度

对于数据量在百万级以内的话维护成本差不多,如果再大mysql数据库就需要使用分库分表了。后期如果数据大数据处理的话,我认为nosql数据库更有优势。

python如何操作mongodb数据库需要注意什么

这里介绍一个包—pymongo,是python专门用于操作mongodb数据库的一个包,借助这个包,我们可以快速实现mongodb数据库的增删改查,下面我简单介绍一下这个包的安装和使用,实验环境win10+python3.6+pycharm5.0,主要内容如下:

为了更好地说明问题,这里我新建了一个student集合(数据表),主要内容如下:

1.下载安装pymongo,这里直接在cmd窗口输入命令“pipinstallpymongo”就行,如下:

2.接着我们就可以进行mongodb数据库的操作了,主要代码及截图如下:

连接数据库,这里直接创建连接就行,代码如下:

查询数据,这里可以直接使用find_one和find函数进行查询,find_one返回单条数据,find返回多条数据,代码如下:

程序运行截图如下:

插入数据,这里主要用到insert_one,insert_many这2个函数,insert_one插入一条数据,insert_many插入多条数据,插入成功后,会返回插入数据的_id:

程序运行截图如下:

插入的数据:

修改数据,这里主要用到update_one和update_many这2个函数,其中uodate_one更新1条数据,update_many更新多条数据,代码如下:

程序运行截图:

修改数据如下:

删除数据,这里主要用到delete_one和delete_many这个2个函数,主要代码如下,代码如下:

程序运行截图如下:

删除后数据如下:

至此,我们就完成了利用python来操作mongodb数据库。总的来说,整个过程很简单,借助pymongo这个包,我们可以快速完成对mongodb数据库的增删改查,网上也有相关教程和资料,感兴趣的可以搜一下,希望以上分享的内容能对你有所帮助吧。

一个大型的SNS网站,是否适合数据库全部用mongodb来做,为什么

我的回答是不建议都使用MongoDB。NOSQL数据库和关系型数据库各有各的优劣,在项目里面一般需要根据不同的需求和场景来搭配使用。对于非关系型数据库MongoDB来说,可以存放访问频繁的数据,而且SNS里确实存在一些业务适合MongoDB,但是我们开发系统,是功能和性能的综合考虑,一般需要关系型数据库和非关系型数据库配合使用。

mongodb,redis,hbase,三者都是nosql数据库,他们的最大区别和不同定位是什么

1.如果你对数据的读写要求极高,并且你的数据规模不大,也不需要长期存储,选redis;

2.如果你的数据规模较大,对数据的读性能要求很高,数据表的结构需要经常变,有时还需要做一些聚合查询,选MongoDB;

3.如果你需要构造一个搜索引擎或者你想搞一个看着高大上的数据可视化平台,并且你的数据有一定的分析价值或者你的老板是土豪,选ElasticSearch;

4.如果你需要存储海量数据,连你自己都不知道你的数据规模将来会增长多么大,那么选HBase。

而对于分布式数据库的选择,初步来看实际上可以分为三类

1.偏基于Hadoop体系架构和分布式存储的,类似HDFS库和HBase数据库,也包括中间类型MongoDB

2.偏内存和缓存类的,类似Redis库

3.偏全文检索类和数据分析类的,类似ElasticSearch和Solr库

windows下安装的mongodb数据库,怎么能让云服务器访问到呢

简单,只要你的本地机器可以被云服务器访问到就可以。

所以,你需要:

公网IP

或者公网的URL可以映射到你的本地机器

然后,你还需要确认,你的mongodb的serviceport也同样是可以expose到公网上的。

最后,如果你要expand你的云服务器的mongodb到你的本地机器,你需要sharding,请参阅官方文档。

关于mongodb数据库和为什么用mongodb而不用MySQL的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

最新文章