Mongo DB 初识
前言
2016年伊始,开始研究NoSql.看了couchdb,cloudant,cassandra,redis.却一直没有看过排行榜第一的mongo,实属不该。近期会花时间研究下mongo。本文是初识mongo的体验。有错误之处,还望指正。
Mongo VS cassandra
目前NoSql 排行版前三是Mongo,Cassandra,Redis.Redis 特点明确,key-value 形式,数据不持久化主要用来做缓存。所以这里主要比较Mongo,Cassandra
license
mongo 是AGPLV3,mongo driver 才是apache.AGPLV3不是完全开源的,
cassandra 是apache,无压力性能
现在这世道,是个数据库都说自己是高性能。个人使用情况来看。cassandra写入性能要好很多,原因在于他只写commit log 和memtable.线性扩展Cassandra也好很多。读操作没有特别区别。
但是不基于业务来谈性能没什么多大意义。因为cassandra为了高效存储数据,对query的支持不是很友好,所以通常为了满足query,你可能需要建立index,视图,或者新表。这些开销会影响到写性能。数据模型
mongo 支持复杂的数据模型,数据类型更加的丰富,还可以嵌套文档。
cassandra 相对要弱点。集群架构
mongo 的sharded 集群需要三种角色,query router,config server,data store replicat set.当有primary节点down掉,需要重新选举primary node.所以会有down time.另外集群角色多,部署起来相对麻烦,但个人觉得这不是什么多大问题,毕竟没有人需要经常去部署。
cassandra所有节点都一样,replication_factor 为3的,write_consistency 为quorum时,可支持1个node down。对于整个cluster来说,是zero down time.没有任何影响。multi active-active 数据中心
mongo 有主从节点,只有主节点能够写。所以没法做到active-active.如果用户从一个数据中心到另外一个数据中心了,没法写到新的数据中心,必须要写到最初的数据中心。
cassandra 没问题,server端可以配置DC-Aware 模式,就可以根据server来路由到新的数据中心- 与关系型数据库对比
mongo 更像关系型数据库,虽然mongo是基于document,没有了SQL语句,而cassandra却有CQL.以及mongo 没有Schema,而cassandra却有。但是从设计schema,和使用情况来说。mongo不需要太多的思想转变,数据既可以是规范化也可以有反规范化。但是cassandra则完全反规范化。
Mongo 物理架构
复制集

一个主节点,两个secondary 节点。主节点写,secondary 节点可以分发读。三个节点的数据完全一样。
sharded cluster
复制集这种不分片的mongo 架构满足不了数据量大的情况。

三种角色
- query router
查询路由,server 发请求到router,然后分发给shard - config servers
存储集群的元数据和配置信息,不存储数据 - shard
存储分片数据
注意query router 是mongos instance,而config server 和 shard中节点都是mongod instance.两者不一样。mongos 启动的时候需要连接config server,并配置各个shard信息。
Mongo DB 初识的更多相关文章
- mongo DB for C#
(1)Download the MongoDB C#驱动. http://www.nuget.org/packages/mongocsharpdriver/. (2) Add Reference to ...
- Mongo DB 2.6 需要知道的一些自身限定
在现实的世界中,任何事情都有两面性,在程序的世界中,亦然! 我们不论是在使用一门新的语言,还是一门新的技术,在了解它有多么的让人兴奋,让人轻松,多么的优秀之余,还是很有必要了解一些他的局限性,方便你在 ...
- Mongo DB Study: first face with mongo DB
Mongo DB Study: first face with mongo DB 1. study methods: 1. Translate: I am the mongo DB organiz ...
- mongo db 分享 ppt
在公司内部的mongo db的ppt.初步进阶 http://files.cnblogs.com/files/yuhan-TB/mongoDB.pptx
- Mongo DB 安装-及分布式集群部署(初稿)
一.安装步骤, 1, 下载最新的Mongo DB数据库:http://www.mongodb.org/downloads?_ga=1.44426535.2020731121.1421844747\ 下 ...
- mongo db 使用方法
1 下载 mogodb http://www.mongodb.org/display/DOCS/Downloads 2 打开服务 我安装在e盘下了 可以指定数据文件位置 到 E:\mongoDB\mo ...
- mysql 和 mongo db 语法对比
本文描述了MySQL中的常用SQL语句在MongoDB中的写法,如果你长期使用MySQL而对MongoDB跃跃欲试,这篇简单的文章可以帮助你更快的进入角色.查询:MySQL:SELECT * FROM ...
- Mongo DB命令简介
引言 最近在学习MongoDB 总结了一些命令及常用的东西做整理 常用目录文件介绍 mongod 数据库部署命令 mongo 连接mongodb数据库而使用的命令 mongoimport 导入 ...
- Java从入门到精通——数据库篇Mongo DB GridFS文件系统
一.概述 GridFS是MongoDB的一种存储机制,用来存储大型二进制文件. 优点: 1.使用GridFS能够简化你的栈.如果已经在使用MongoDB,那么可以使用GridFS来代替独立的文件 ...
随机推荐
- [LeetCode] 24 Game 二十四点游戏
You have 4 cards each containing a number from 1 to 9. You need to judge whether they could operated ...
- poj 1046 ——Color Me Less
提交地址:http://poj.org/problem?id=1046 Color Me Less Time Limit: 1000MS Memory Limit: 10000K Total Su ...
- bzoj 5285: [Hnoi2018]寻宝游戏
Description Solution 把输入的 \(n\) 个二进制数看作一个大小为 \(n*m\) 的矩阵 把每一列压成一个二进制数,其中最高位是最下面的元素 然后就有了 \(m\) 个二进制数 ...
- ●Codevs 4158 残缺的字符串
题链: http://codevs.cn/problem/4158/ 题解: FFT. 定义两个相同长度的字符串s1,s2的距离为 $$dis(s1,s2)=\sum_{i=0}^{len-1}(s1 ...
- [Noi2015]荷马史诗
来自FallDream的博客,未经允许,请勿转载,谢谢. 追逐影子的人,自己就是影子. ——荷马 Allison 最近迷上了文学.她喜欢在一个慵懒的午后,细细地品上一杯卡布奇诺,静静地阅读她爱不释手的 ...
- python flask 基础入门
1. Flask 中的Hello World! 在使用pycharm创建一个Flask项目后,将会默认创建一个flask的app,这里来讲下每行代码表示的意义,代码入下 from flask impo ...
- PHP中利用DOM创建xml文档
DOM创建xml文档 用dom创建如下文档: <booklist> <book id="1"> <title>天龙八部</title> ...
- 简述RIP路由协议和OSPF路由协议的相同点和不同点。
路由协议分为静态路由协议和动态路由协议.动态路由协议有很多种,如RIP.OSPF.EIGRP等. 1.RIP(路由信息协议)是路由器生产商之间使用的第一个开放标准.RIP有两个版本:RIPv1和RIP ...
- js打印小结
<script type="text/javascript"> //打印必备参数 var hkey_root,hkey_path,hkey_key; hkey_root ...
- Recycleview实现复杂布局
Recycleview实现复杂布局 首先 附上Demo链接和效果供大家参考 Demo 实现思路 代码思考 时间是一切财富中最宝贵的财富. -- 德奥弗拉斯多 <a 实现思路 开始看到设计稿子的时 ...