MongoDB初识及其重要特性

数据库分类

​ 数据库是存放数据的仓库,主要分为两种:关系型数据库和非关系型数据库。

关系型数据库是把复杂的数据结构归结为简单的二元关系,其通过SQL结构化查询语句来操作数据,其最大优点是可以保持数据的一致性。主流的关系型数据库有Oracle、Mysql、SQL Server等。

非关系型数据是大量结构化数据存储方法的集合,也称NoSQL(Not Only SQL),是对关系型数据库的补充,其牺牲事务的处理和SQL支持,来换取格式上的灵活和读写速度快,适用于高性能、高并发、对数据一致性要求不高的场景。主流的非关系型数据库有MongoDB、Redis、HBase等。
其中的非关系数据库按照数据存储格式分为键值存储、列存储、文档存储和图形存储数据库四种。其对比如下表所示:
在这里插入图片描述

MongoDB的特性

​ mongo作为文档型数据库的一种,主要是为快速开发Web应用而设计的数据库系统,其数据模型和持久化策略就是为了构建高读/写吞吐量高自动灾备伸缩性的系统。无论系统是需要单个还是多个结点,MongoDB都可提供高性能。mongo的以下特性,也为mongo的出色性能提供保障。

​ 1. mongo在文档里存储数据而不是在行里,数据结构为二进制JSON格式,也叫BSON,文档可以不用遵守严格的数据定义,可以不用担心未来可能的数据字段的变化。

​ 2. mongo支持主动查询模式(ad hoc queries),即不需事先定义系统接收何种查询。而且相比于redis只支持key这一种查询来换取更简单的伸缩模型,mongo保留了大部分关系型数据库的功能,这也让mongo的查询功能丰富而强大。

​ 3. 提供索引来加快查询效率,每个集合可以创建最多64个索引,并且索引的类型丰富,包含唯一索引、稀疏索引、哈希索引、多键索引、地址空间索引。

​ 4. 可复制集(replica set),在多个机器上分布式存储数据,可以很方便的实现冗余数据存储和自动灾备,让数据更安全,并且一切都是mongo服务器可以自动完成。

​ 5. 加速与持久化的处理,可以让用户更好的处理两者的关系。

​ 6. mongo提供强大的自动分片功能,让mongo可以很容易的水平扩展,其内部的分割迁移等操作,可以保证数据在分片之间的平衡,很好的分担数据的读写压力。

我们一般选用mongo也主要是参考其第一个特性,因为其特殊的文档的数据结构,让数据可以更简单的扩展,以适用于应用的需求,但是mongo的其他特性也是非常有帮助的,这些特性也是mongo成为以一个强大的nosql数据库。在接下来几篇博客,我们会介绍mongo的其他特性,希望对你有所帮助。

发布了27 篇原创文章 · 获赞 212 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_34666857/article/details/98369801
今日推荐