使用mongodb数据库有哪些优势?

使用mongodb数据库有哪些优势?,第1张

下面是一个瑭锦TANJURD总结 MongoDB 优缺点的列表,希望对打算使用 MongoDB 的同学,能有一些作用:\x0d\x0a优势:\x0d\x0a快速!(当然,这和具体的应用方式有关,通常来说,它比一般的关系数据快5位左右。)\x0d\x0a很高的可扩展性 _ 轻轻松松就可实现PB级的存储(但是可能我们并不需要PB级的存储,10TB可能就够了)\x0d\x0a他有一个很好的 replication 模式 (replica sets)\x0d\x0a有很完善的Java API\x0d\x0a他的存储格式是Json的,这对Java来说非常好处理,对javascirpt亦然。\x0d\x0a运维起来非常方便,你不用专门为它安排一个管理员。\x0d\x0a它有一个非常活跃的社区(我提出的一个bug在20分钟内就能得到修复。多谢Elliot)\x0d\x0a他的版本控制非常清楚。\x0d\x0aMongoDB 背后的公司(10gen)已经准备好了明天在 MongoDB 上面的投入的资金了。\x0d\x0a劣势\x0d\x0a应用经验缺乏,我们都没有相关NoSQL 产品的使用经验。\x0d\x0a项目相对来说还比较新。\x0d\x0a和以往的存储相比,数据的关系性 *** 作不再存在。

前言:

MySQL与MongoDB都是开源的常用数据库,但是MySQL是传统的关系型数据库,MongoDB则是非关系型数据库,也叫文档型数据库,是一种NoSQL的数据库。它们各有各的优点,关键是看用在什么地方。所以我们所熟知的那些SQL语句就不适用于MongoDB了,因为SQL语句是关系型数据库的标准语言。

一、关系型数据库-MySQL

1、在不同的引擎上有不同的存储方式。

2、查询语句是使用传统的sql语句,拥有较为成熟的体系,成熟度很高。

3、开源数据库的份额在不断增加,mysql的份额页在持续增长。

4、缺点就是在海量数据处理的时候效率会显著变慢。

二、非关系型数据库-MongoDB

非关系型数据库(nosql ),属于文档型数据库。先解释一下文档的数据库,即可以存放xml、json、bson类型系那个的数据。这些数据具备自述性,呈现分层的树状数据结构。数据结构由键值(key=>value)对组成。

1、存储方式:虚拟内存+持久化。

2、查询语句:是独特的MongoDB的查询方式。

3、适合场景:事件的记录,内容管理或者博客平台等等。

4、架构特点:可以通过副本集,以及分片来实现高可用。

5、数据处理:数据是存储在硬盘上的,只不过需要经常读取的数据会被加载到内存中,将数据存储在物理内存中,从而达到高速读写。

6、成熟度与广泛度:新兴数据库,成熟度较低,Nosql数据库中最为接近关系型数据库,比较完善的DB之一,适用人群不断在增长。

三、MongoDB优势与劣势

优势:

1、在适量级的内存的MongoDB的性能是非常迅速的,它将热数据存储在物理内存中,使得热数据的读写变得十分快。

2、MongoDB的高可用和集群架构拥有十分高的扩展性。

3、在副本集中,当主库遇到问题,无法继续提供服务的时候,副本集将选举一个新的主库继续提供服务。

4、MongoDB的Bson和JSon格式的数据十分适合文档格式的存储与查询。

劣势:

1、 不支持事务 *** 作。MongoDB本身没有自带事务机制,若需要在MongoDB中实现事务机制,需通过一个额外的表,从逻辑上自行实现事务。

2、 应用经验少,由于NoSQL兴起时间短,应用经验相比关系型数据库较少。

3、MongoDB占用空间过大。

1. 文档存储

数据存储以BSON/JSON文档,这对于Web应用程序有很大的意义。开发者API喜欢以JSON形式传输,这使得整个项目的数据表示可采用统一的模型。所有这一切都无需任何前期架构设计。

2. 可扩展性

MongoDB被用在一些规模庞大的环境中,FourSquare/Craiglist都在使用它。通过分片数据缩放处理理论上可实现更高的吞吐量。

3. 简单的复制

就像分片技术一样,MongoDB范围内复制过程同样简单好用,在副本机器上还有大量的复制选项。灵活的功能可满足用户应用的需求。

4. 易于查询

MongoDB以文档的形式存储数据,不支持事务和表连接。因此查询的编写、理解和优化都容易得多。简单查询设计思路不同于SQL模式,嵌入文档在特定的环境下可得到更好的查询,然而这需要先加入集合。如果需要执行多个请求到数据库则需要加入其到客户端。在MongoDB时ODM工具(如Doctrine2)将发挥自身的优势。

5. 安全性

由于MongoDB客户端生成的查询为BSON对象,而不是可以被解析的字符串,所以可降低受到SQL注入的攻击的危险。最常见的攻击类型为针对Web应用程序的攻击,在MongoDB上使用Doctrine2 ODMs 查询语言可减轻攻击风险。

6. 支持

用户在选择数据库时总是喜欢积极和充满活力的,这点非常重要。MongoDB在业界有非常大的影响力,用户也会定期的组织活动。MongoDB的标签在StackOverFlow是非常活跃的。你永远不会陷入困境,因为总有人与你讨论并解决问题。

7. 价格

MongoDB是免费的!

当然远不止这些优势,但是也有很多劣势。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10000146.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存