mongoDB为什么快

  • 写操作
    1)写操作MongoDB比传统数据库快的根本原因是Mongo使用的内存映射技术,写入数据时候只要在内存里完成就可以返回给应用程序,这样并发量自然就很高。而保存到硬体的操作则在后台异步完成。注意MongoDB在2.4就已经是默认安全写了(具体实现在驱动程序里)。

  • 读操作
    读操作MongoDB快的原因是:
    1)MongoDB的设计要求你常用的数据(working set)可以在内存里装下。这样大部分操作只需要读内存,自然很快。
    2)文档性模式设计一般会是的你所需要的数据都相对集中在一起(内存或硬盘),大家知道硬盘读写耗时最多是随机读写所产生的磁头定位时间,数据集中在一起则减少了关系性数据库需要从各个地方去把数据找过来(然后Join)所耗费的随机读时间;另外一个就是Mongo是分布式集群所以可以平行扩展。目前一般的百万次并发量都是通过几十上百个节点的集群同时实现。这一点MySQL基本无法做到。NoSQL并不是不使用sql,只是不使用关系。没有关系的存在,就表示每个数据都好比是拥有一个单独的存储空间,然后一个聚集索引来指向。搜索性能一定会提高的。
    3)语言。使用javascript语法进行操作更加高效、直接。这些是MongoDB针对关系型数据库的效率要高的原因。但是不能仅仅看重效率,这种数据库的设计带来的弊端也是有的。例如数据关系的维护会带来很多冗余数据、客户端代码需要大量针对数据库进行的IO操作、数据挖掘难以实现等等。

MongoDB之所以被认为是速的数据库,有以下几个原因: 1. 内存映射技术:MongoDB使用了内存映射文件的方式来管理数据。它允许将数据文件直接映射到内存中,这样可以充分利用操作系统的虚拟内存管理,减少了磁盘I/O的次数,提高了数据的读写速度。 2. 索引支持:MongoDB支持各种类型的索引,包括单键索引、复合索引、地理空间索引等。通过合理地选择和使用索引,可以大大缩短查询所需的时间。 3. 垂直扩展和水平扩展:MongoDB支持垂直扩展和水平扩展两种方式。垂直扩展是通过增加硬件资源来提升性能,例如增加更多的RAM、CPU等。水平扩展则是通过分布式集群来提升性能,将数据分散存储在多个节点上,每个节点只处理部分数据,从而提高了并发处理能力。 4. 冗余复制和故障恢复:MongoDB支持数据的冗余复制和自动故障恢复。通过将数据复制到多个节点上,可以提高数据的可用性和容灾能力。当一个节点故障时,系统会自动将任务切换到其他节点上,保证了服务的连续性。 需要注意的是,虽然MongoDB在某些情况下可以表现出很高的性能,但它也有一些限制和适用场景。例如,当数据量非常大时,性能可能会受到限制;在频繁进行写入操作的场景下,性能可能会有所下降。因此,在选择数据库时,需要根据具体需求和场景来进行权衡和选择。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值