MongoDB

2020-05-22 00:00:00 数据 数据库 支持 是一个 结构化

一、MongoDB概述

segmentfault.com/a/1190

1.什么是MongoDB

MongoDB 是一个基于分布式文件存储的数据库,由C++语言编写。是一个文档数据库,提供好的性能,领先的非关系型数据库。采用BSON存储文档数据。BSON是一种类json的一种二进制形式的存储格式,简称Binary JSON.相对于json多了date类型和二进制数组。

2.MongoDB的优势有哪些

① 面向集合(Collection)和文档(document)的存储,以JSON格式的文档保存数据。

② 高性能,支持Document中嵌入Document减少了数据库系统上的I/O操作以及具有完整的索引支持,支持快速查询

③ 高效的传统存储方式:支持二进制数据及大型对象

④ 高可用性,数据复制集,MongoDB 数据库支持服务器之间的数据复制来提供自动故障转移(automatic failover)

⑤ 高可扩展性,分片(sharding)将数据分布在多个数据中心,MongoDB支持基于分片键创建数据区域.

⑥ 丰富的查询功能, 聚合管道(Aggregation Pipeline)、全文搜索(Text Search)以及地理空间查询(Geospatial Queries)

⑦ 支持多个存储引擎,WiredTiger存储引、In-Memory存储引擎

3.NoSQL数据库分类

① 列存储:Hbase/Cassandra

② 文档存储:MongoDB/CounchDB

③ key-value存储:Redis/Memcache

④ 图存储:Neo4j/FlockDB

⑤ 对象存储:Db4o

⑥ XML数据库:BaseX

5.在哪些场景使用MongoDB?

1、网站实时数据量大

2、数据读写都很频繁

3、价值较低

规则: 如果业务中存在大量复杂的事务逻辑操作,则不要用MongoDB数据库;在处理非结构化 / 半结构化的大数据使用MongoDB,操作的数据类型为动态时也使用MongoDB,比如:

· 内容管理系统,切面数据、日志记录

· 移动端Apps:O2O送快递骑手、快递商家的信息(包含位置信息)

· 数据管理,监控数据

数据库mysql和mongdb的区别?

SQL:mysql、Oracle、sqlserver、db2

1. 高度事务性场景:银行、会计、贸易,库管,需要大量原子性操作

2. 适合存储结构化数据,如用户的帐号、地址,预先定义明确的字段

3. 数据价值高、对安全性要求高、稳定性要求高

4. 需要持久化存储的 "冷数据"(不需要经常读写的数据)

5. 需要通过SQL语言做关联查询,比如join

6.这些数据的规模、增长的速度通常是可以预期的

NoSQL:

redis key:value(string、hash、set、zset、list)、

mongodb {"name" : "xiaoming", "age" : 18}, {}

mongodb:字典格式,支持分组、索引、主从备份、集群

1. 灵活的数据结构,适合存储非结构化数据,如文章、评论,需要事先设计 数据的增删改 的字段

2. 高度收缩性场景,社交网络、热点资讯,NoSQL数据库通常具有无限(至少接近)伸缩性

3. 处理 "热数据"(经常需要读写的数据),这些数据通常用于模糊处理,如全文搜索、机器学习

4. 这些数据是海量的,而且增长的速度是难以预期的,更容易扩展

5. 按key获取数据效率很高,但是对join或其他结构化查询的支持就比较差

大型互联网项目都会选用MySQL(或任何关系型数据库) + NoSQL的组合方案

端口号:

mysql: 3306

redis: 6379

mongodb: 27017

相关文章