MongoDB简介
转载请出自出处:http://eksliang.iteye.com/blog/2173288
1.1易于使用
MongoDB是一个面向文档的数据库,而不是关系型数据库。与关系型数据库相比,面向文档的数据库不再有行的概念,取而代之的是更为灵活的“文档”模型。
另外,不再有预定义模式:文档的键(key)和值(value)不在是固定的类型和大小。由于没有固定的模式,根据需要添加或者删除字段就变得更容易了。
1.2易于拓展
应用程序需要存储的数据量不断在增长,开发者面临一个困难:应该如何拓展数据库?实际上,这是纵向拓展和横向拓展之间的选择。纵向拓展就是使用计算能力更强的机器,而横向拓展就是通过分区将数据分散到更多机器上。通常,纵向拓展是最省力的做法,其缺点是大型机一般非常昂贵。而且,当数据量达到机器的物理极限时,无论花多少钱也买不到更强的机器了。另一个选择是横向拓展:要增加存储空间货提高性能,只需要购买一台普通的服务器并把它添加到集群中就可以了。横向拓展既便宜有易于拓展。
MongoDB的设计采用横向拓展。MongoDB能自动处理跨集群的数据和负载,自动重新分配文档,以及将用户请求路由到正确的机器上。这样,开发者能够集中精力编写应用程序,而不需要考虑拓展的问题。如果一个集群需要更大的容量,只需要向集群中添加新服务器,MongoDB就会自动将现有数据像新服务器传送。
1.3丰富的功能
MongoDB作为一款通用型数据库,除了能够创建、读取、更新、删除数据之外,还提供了一系列不断拓展的独特功能。
- 1)索引
MongoDB支持通用二级索引,允许多种快速查询,提供唯一索引、复合索引、地理空间索引、以及全文索引。
- 2)聚合
MongoDB支持“聚合管道”。用户能通过片段创建复杂的聚合,并通过数据库自动优化、
- 3)特殊的集合类型
MongoDB支持存在时间有限的集合,适用于那些将在某个时刻过期的数据,如会话。类似地,MongoDB也支持固定大小的集合,用于保存近期数据,如日志。
- 4)文件存储
MongoDB支持一种非常易用的协议,用于存储文件和文件元数据。
MongoDB并不具备一些在关系型数据库中很普遍的功能,如连接查询、多行事物。省略这些是为了获得更好的拓展性,因为这两个功能在分布式系统中难以高效的利用。
1.4卓越的性能
MongoDB的一个主要目标就是提供卓越的性能,MongoDB能对文档进行动态填充,也能预分配数据文件以利用额外的空间来换取稳定的性能。MongoDB把尽可能多的内存用作缓存,试图为每次查询自动选择正确的索引。总之MongoDB在各方面的设计都是为了保证他稳定的性能。
虽然,MongoDB非常强大并试图保留关系型数据库的很多特性,但它并不追求具备关系型数据库的所有功能。只要有可能,数据库服务器就会将处理和逻辑交给客户端来实现。这种精简方式的设计是MongoDB能够实现如此高性能的原因之一
相关推荐
### MongoDB简介 MongoDB是一种介于关系数据库和非关系数据库之间的产品,在非关系数据库中以其丰富的功能和接近关系数据库的特性而闻名。它支持类似JSON的BSON格式数据存储,适用于存储复杂的数据类型。 #### ...
MongoDB是一种面向文档(Document)的NoSQL数据库,支持多平台如Windows、Linux、Mac OS X、FreeBSD等,并且其核心是用C++实现的Solaris。MongoDB提供多语言驱动支持,包括Ruby/Ruby-on-Rails、Java、C#、JavaScript、...
在这个"MongoDB简介及精进PDF"的压缩包中,包含了对MongoDB的深度探讨,包括其基本概念、核心特性、最佳实践以及高级技术应用。 NOSQL主流产品的研究报告.docx可能涵盖了当前市场上流行的NoSQL数据库的比较,包括...
### MongoDB简介与实践 #### MongoDB概述 MongoDB是一款先进的、基于分布式文件存储的数据库系统,其核心编程语言为C++。这款数据库系统的设计初衷是为了满足Web应用对高性能、可扩展数据存储方案的需求。MongoDB...
MongoDB 是一个广泛使用的开源数据库系统,尤其在处理大量非结构化数据时表现出色。它是用 C++ 语言编写的,具有分布式文件存储的特性,适合于构建高度可扩展的应用程序。MongoDB 的设计目标是提供高性能、高可用性...
在Cherryleer创建的这个MongoDB简介中,你将学习到如何开始使用MongoDB,从安装、基本操作到高级特性,为你的项目提供一个强大的非关系型数据库解决方案。通过JavaScript与MongoDB的紧密集成,你可以更加高效地管理...
"Mongodb shard 简介" MongoDB shard 是一种水平方向的多节点数据分散存储技术,它可以将大量数据分布到多个服务器上,以提高数据库的存储能力和查询效率。下面是 MongoDB shard 的一些特性和部署架构: Shard 的...
资源名称:MongoDB应用设计模式内容简介:无论是在构建社交媒体网站,还是在开发一个仅在内部使用的企业应用程序,《MongoDB应用设计模式》展示了MongoDB需要解决的商业问题之间的连接。你将学到如何把MongoDB设计...
MongoDB是一种流行的开源、分布式文档型数据库,设计用于处理海量数据并提供高可用性和可扩展性。它采用了NoSQL的数据模型,与传统的SQL关系数据库相比,具有更灵活的数据结构和更高的写入性能。MongoDB使用BSON...
二、MongoDB简介 MongoDB是一个NoSQL数据库,它使用JSON-like文档进行数据存储,这使得处理复杂数据结构变得简单。它的特点是灵活性、高可用性、可扩展性和高性能,适用于大数据和实时应用。 三、安装MongoDB 1. ...
Spring Data MongoDB简介** Spring Data MongoDB提供了与MongoDB数据库交互的一系列抽象,包括MongoTemplate和Repository接口。通过这些接口,开发人员无需直接编写MongoDB的Java驱动程序代码,就能实现CRUD(创建...
MongoDB是一种开源的非关系型数据库系统,其特点在于分布式文件存储、高性能、易部署、易使用和存储格式灵活。MongoDB采用C++编写,支持存储各种复杂的数据类型,尤其擅长处理大量的数据。它的数据模型与传统的关系...
#### MongoDB简介 MongoDB是一款开源的NoSQL数据库系统,与传统的关系型数据库不同,它采用了一种灵活的数据模型——文档模型,这使得它在处理半结构化和非结构化的数据时非常高效。MongoDB的文档是以BSON格式存储的...
MongoDB简介 MongoDB是一款面向文档的NoSQL数据库,使用BSON(Binary Serialized Object Notation)存储数据。它具有高性能、高可用性和可扩展性,常用于大数据分析、实时分析、机器学习和人工智能等领域。 ...
1. **MongoDB 简介** MongoDB 是一个NoSQL 数据库,使用JSON 样式的文档存储数据,适合处理大规模数据。其特点包括高可用性、可扩展性和灵活性。 2. **Spring Data MongoDB 概述** Spring Data MongoDB 提供了一...
#### 一、MongoDB简介 MongoDB是一种非常流行的开源文档数据库系统,它属于NoSQL(非关系型数据库)的一种。与传统的关系型数据库不同,MongoDB采用BSON(Binary JSON)格式存储数据,这使得数据存储更加灵活,并且...
1. **MongoDB简介** MongoDB是一个分布式数据库,它以JSON格式的文档作为数据存储单元,提供了高性能、高可用性和可扩展性。由于其灵活的数据模型和强大的查询能力,MongoDB在Web应用程序、数据分析和实时应用程序...