MongoDB
一、MongoDB概述
https://segmentfault.com/a/1190000020895012?utm_source=tag-newest
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
相关文章