javaee论坛

普通会员

225648

帖子

334

回复

348

积分

楼主
发表于 2019-11-01 21:04:13 | 查看: 649 | 回复: 1

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

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

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

MongoDB的特性

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

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

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

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

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

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

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

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


普通会员

1

帖子

298

回复

310

积分
沙发
发表于 2019-12-22 03:06:02

看看

您需要登录后才可以回帖 登录 | 立即注册

触屏版| 电脑版

技术支持 历史网 V2.0 © 2016-2017