返回顶部
首页 > 资讯 > 精选 >mongodb有什么缺点
  • 909
分享到

mongodb有什么缺点

2024-04-02 19:04:59 909人浏览 薄情痞子
摘要

mongoDB的缺点有:1、monGodb不支持事务操作;2、使用mongodb数据库存储数据占用空间过大;3、mongodb没有如Mysql那样成熟的维护工具;4、mongodb在集群分片中的数据分布不均匀;5、在mongodb中持续插入

mongoDB的缺点有:1、monGodb不支持事务操作;2、使用mongodb数据库存储数据占用空间过大;3、mongodb没有如Mysql那样成熟的维护工具;4、mongodb在集群分片中的数据分布不均匀;5、在mongodb中持续插入大量数据,其写入性能会有较大波动;6、使用mongodb数据库时,其单机可靠性比较差。

mongodb有什么缺点

具体内容如下:

与关系型数据库相比,MongoDB的优点:

①弱一致性(最终一致),更能保证用户的访问速度:

举例来说,在传统的关系型数据库中,一个COUNT类型的操作会定数据集,这样可以保证得到“当前”情况下的较精确值。这在某些情况下,例 如通过ATM查看账户信息的时候很重要,但对于Wordnik来说,数据是不断更新和增长的,这种“较精确”的保证几乎没有任何意义,反而会产生很大的延 迟。他们需要的是一个“大约”的数字以及更快的处理速度。

但某些情况下MongoDB会锁住数据库。如果此时正有数百个请求,则它们会堆积起来,造成许多问题。我们使用了下面的优化方式来避免锁定:

每次更新前,我们会先查询记录。查询操作会将对象放入内存,于是更新则会尽可能的迅速。在主/从部署方案中,从节点可以使用“-pretouch”参数运行,这也可以得到相同的效果。 

使用多个mongod进程。我们根据访问模式将数据库拆分成多个进程。 

②文档结构的存储方式,能够更便捷的获取数据。

对于一个层级式的数据结构来说,如果要将这样的数据使用扁平式的,表状的结构来保存数据,这无论是在查询还是获取数据时都十分困难。

③内置GridFS,支持大容量的存储。

  GridFS是一个出色的分布式文件系统,可以支持海量的数据存储。

  内置了GridFS了MongoDB,能够满足对大数据集的快速范围查询。

④内置Sharding。

提供基于Range的Auto Sharding机制:一个collection可按照记录的范围,分成若干个段,切分到不同的Shard上。

Shards可以和复制结合,配合Replica sets能够实现Sharding+fail-over,不同的Shard之间可以负载均衡。查询是对 客户端是透明的。客户端执行查询,统计,mapReduce等操作,这些会被MongoDB自动路由到后端的数据节点。这让我们关注于自己的业务,适当的 时候可以无痛的升级。MongoDB的Sharding设计能力较大可支持约20 petabytes,足以支撑一般应用。

这可以保证MongoDB运行在便宜的PC服务器集群上。PC集群扩充起来非常方便并且成本很低,避免了“sharding”操作的复杂性和成本。

⑤第三方支持丰富。(这是与其他的NoSQL相比,MongoDB也具有的优势)

现在网络上的很多Nosql开源数据库完全属于社区型的,没有官方支持,给使用者带来了很大的风险。

而开源文档数据库MongoDB背后有商业公司10gen为其提供供商业培训和支持。

而且MongoDB社区非常活跃,很多开发框架都迅速提供了对MongDB的支持。不少知名大公司和网站也在生产环境中使用MongoDB,越来越多的创新型企业转而使用MongoDB作为和Django,RoR来搭配的技术方案。

⑥性能优越:

在使用场合下,千万级别的文档对象,近10G的数据,对有索引的ID的查询不会比mysql慢,而对非索引字段的查询,则是全面胜出。 mysql实际无法胜任大数据量下任意字段的查询,而mongodb的查询性能实在让我惊讶。写入性能同样很令人满意,同样写入百万级别的数 据,mongodb比我以前试用过的couchdb要快得多,基本10分钟以下可以解决。补上一句,观察过程中mongodb都远算不上是CPU杀手。

与关系型数据库相比,MongoDB的缺点:

①mongodb不支持事务操作。

  所以事务要求严格的系统(如果银行系统)肯定不能用它。(这点和优点①是对应的)

②mongodb占用空间过大。

  关于其原因,在官方的FAQ中,提到有如下几个方面:

空间的预分配:为避免形成过多的硬盘碎片,mongodb每次空间不足时都会申请生成一大块的硬盘空间,而且申请的量从64M、128M、256M那 样的指数递增,直到2G为单个文件的较大体积。随着数据量的增加,你可以在其数据目录里看到这些整块生成容量不断递增的文件。

字段名所占用的空间:为了保持每个记录内的结构信息用于查询,mongodb需要把每个字段的key-value都以BSON的形式存储,如果 value域相对于key域并不大,比如存放数值型的数据,则数据的overhead是较大的。一种减少空间占用的方法是把字段名尽量取短一些,这样占用 空间就小了,但这就要求在易读性与空间占用上作为权衡了。我曾建议作者把字段名作个index,每个字段名用一个字节表示,这样就不用担心字段名取多长 了。但作者的担忧也不无道理,这种索引方式需要每次查询得到结果后把索引值跟原值作一个替换,再发送到客户端,这个替换也是挺耗费时间的。现在的实现算是 拿空间来换取时间吧。

删除记录不释放空间:这很容易理解,为避免记录删除后的数据的大规模挪动,原记录空间不删除,只标记“已删除”即可,以后还可以重复利用。

可以定期运行db.repairDatabase()来整理记录,但这个过程会比较缓慢

③MongoDB没有如MySQL那样成熟的维护工具,这对于开发和IT运营都是个值得注意的地方。

MongoDB适合存储一些关系简单、数据量又很大的数据,比如我们的平台上虚拟机监控信息,包括内存、IO、CPU、网络等数据,每隔几秒就采集一次数据,每周、每月,量很大,而且旧的监控数据也不会保留太长时间,就使用的mongodb来存储这些数据;

另外mongodb的集群部署相对比较简单,易于扩展;比如主从复制,在mongo.conf配置几个参数就OK了;分片集群的配置也比较简单。还支持使用命令行来进行动态地添加和删除节点;

Mongodb的优点与不足

(1)Mongodb的不足之处

在集群分片中的数据分布不均匀

单机可靠性比较差

大数据量持续插入,写入性能有较大波动

磁盘空间占用比较大

(2)Mongodb的过人之处

无模式

查询与索引方式灵活,是最像SQL的Nosql

支持复制集、主备、互为主备、自动分片等特性

--结束END--

本文标题: mongodb有什么缺点

本文链接: https://lsjlt.com/news/109283.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • mongodb有什么缺点
    mongodb的缺点有:1、mongodb不支持事务操作;2、使用mongodb数据库存储数据占用空间过大;3、mongodb没有如mysql那样成熟的维护工具;4、mongodb在集群分片中的数据分布不均匀;5、在mongodb中持续插入...
    99+
    2024-04-02
  • mongodb数据库优点和缺点是什么
    MongoDB数据库的优点包括: 高性能:MongoDB是一种面向文档的数据库,具有灵活的数据模型和高效的查询语言,可以快速处理...
    99+
    2024-04-09
    mongodb
  • nodejs有什么缺点
    这篇文章主要介绍“nodejs有什么缺点”,在日常操作中,相信很多人在nodejs有什么缺点问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”nodejs有什么缺点”的疑惑有所帮...
    99+
    2024-04-02
  • MongoDB集群有哪些优缺点
    MongoDB集群的优点包括: 可扩展性:MongoDB集群可以通过添加更多的节点来实现水平扩展,从而提高系统的处理能力和存储容...
    99+
    2023-10-26
    MongoDB
  • mongodb对比mysql的优缺点是什么
    本文主要给大家简单讲讲mongodb对比mysql的优缺点是什么,相关专业术语大家可以上网查查或者找一些相关书籍补充一下,这里就不涉猎了,我们就直奔主题吧,希望mongodb对比mysql的优缺点是什么这篇...
    99+
    2024-04-02
  • react有什么优缺点
    这篇文章给大家分享的是有关react有什么优缺点的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 优点为:1、创建动态Web应用程序变得更加容易;2、可...
    99+
    2024-04-02
  • bootstrap有什么优缺点
    这篇文章给大家分享的是有关bootstrap有什么优缺点的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 bootstrap是一个基于HTML、CSS、...
    99+
    2024-04-02
  • python建站有什么缺点
    python建站的缺点有以下几点Python是一种解释型脚本语言,翻译代码的方式不同,所以python相对于其他语言编译速度慢;Python缺乏多处理功能,在编写网站页面时,可能会产生限制;Python以数据类型的灵活性而著称,这导致Pyt...
    99+
    2024-04-02
  • CSS Sprites有什么优缺点
    这篇“CSS Sprites有什么优缺点”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“CS...
    99+
    2024-04-02
  • css框架有什么缺点
    CSS框架是一种用于快速开发和设计网页的工具,它提供了预定义的样式和组件,可以大大简化前端开发的工作。然而,就像任何技术工具一样,CSS框架也有一些缺点。以下是一些常见的CSS框架的缺点:学习曲线:使用CSS框架需要学习框架的语法和工作原理...
    99+
    2023-10-21
    css
  • 云主机有什么优缺点
    云主机的优缺点是:1、云主机的优点是能一键部署或自主安装操作系统,抗灾容错能力强,能保证长时间在线,弹性及可扩展性强;2、云主机的缺点是客户的数据全部由云服务公司控制,数据是否安全保密,取决于后者的职业道德和保护能力。具体内容如下:优点首先...
    99+
    2024-04-02
  • VPS服务器有什么缺点
    成本较高:相比于共享主机,VPS服务器的费用要高一些,对于个人网站或小型企业而言可能会增加负担。 技术要求较高:VPS服务器需要用...
    99+
    2024-04-20
    VPS
  • 国内空间有什么缺点
    国内空间存在的一些缺点包括: 城市化进程加快,导致城市空间规划不足,城市建设规划混乱,城市空间利用效率低下。 房价高企,房屋...
    99+
    2024-04-18
    国内空间
  • 私有云服务器有什么缺点
    私有云服务器的缺点有:1、私有云服务器价格相对比较高;2、私有云服务器需要大量人力物力来管理;3、无论使用多少资源,都需要支付所有套餐费用;4、更加容易受到攻击。具体内容如下:与公共云和简单的专用服务器设置相比,私有云还需要投资硬件和资源,...
    99+
    2024-04-02
  • 香港空间有什么优点和缺点
    香港空间的优点包括: 交通便利:香港拥有发达的交通网络,包括地铁、公交车和渡轮等多种交通工具,方便市民出行。 商业繁荣:香港...
    99+
    2024-04-18
    香港空间
  • MongoDB数据库有什么特点
    这篇文章给大家介绍MongoDB数据库有什么特点,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一、什么是MongoDB数据库?MongoDB是一款为web应用程序和互联网基础设施设计的数据库管理系统,是一个基于分布式文...
    99+
    2023-06-14
  • 虚拟主机有什么优缺点
    虚拟主机的优缺点是:1、虚拟主机的优点是价格便宜,能大大降低网站建设的费用;2、虚拟主机的缺点是隔离效果较差,容易受其他用户影响,功能限制较多,稳定性和安全性较差,访问速度慢,且扩容需要重新租用新服务器并为原有租用资源付费。具体内容如下:优...
    99+
    2024-04-02
  • VPS服务器有什么优缺点
    VPS服务器的优缺点是:1、VPS服务器的优点是能完全自主管理控制服务器操作系统,安全性和稳定性高,且可以根据实际需求配置服务器;2、VPS服务器的缺点是同一台物理服务器上其他VPS上安装的程序缺陷、ARP欺骗、病毒、资源挤占等,会严重影响...
    99+
    2024-04-02
  • CDN服务器有什么优缺点
    CDN服务器的优缺点是:CDN服务器的优点是能自动同步网站数据网站数据,解决所有ISP互通和网络链路问题,能有效抗DDOS攻击,维护更简单;CDN服务器的缺点是实施起来复杂且投资成本大。具体内容如下:CDN的原理是边缘访问,访问者就近取数据...
    99+
    2024-04-02
  • 香港服务器有什么缺点
    香港服务器的缺点:1、使用香港服务器搭建网站是不能在百度上投放广告的,必须要在境内备案的网站才可投放;2、香港使用的自己的线路,如果不是选择直连国内大陆的机房,国内用户访问香港服务器时速度会比较慢一些。具体内容如下:使用香港服务器的网站无法...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作