社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  NoSql

MongoDB,为何能在NoSQL家族里异军突起?

架构师之路 • 5 年前 • 895 次点击  
一、mongo的由来
截取自英文俚语humongous,意为”巨大的”,表明mongodb在设计之初就是为大数据量处理而生。
画外音:MongoDB和“芒果”一点关系也没有,芒果是mango,巨大是mongo,没文化真可怕。

二、mongodb是个啥

mongodb是个可扩展、高性能、开源、面向文档(document-oriented)的数据库,由c++实现。官网首页最显著的位置用了”agile”和”scalable”这两个词来形容它:
(1)agile:轻快的,敏捷的;
(2)scalable:可扩展;

三、mongodb的十大特点

(1)面向文档的存储:类JSON文档作为存储,不固定表模式(schema-free)
(2)全文索引支持(full index support)
(3)多副本与高可用性(replication & availability)
(4)自动分片(auto-sharding)
(5)快速原地更新(fast in-place updates):大部分更新操作无需申请新的空间;
(6)支持map/reduce,即使在map/reduce上,也有类似SQL的group by支持;
(7)支持范围查询(range queries)正则表达式查询(regular expression)用户自定义js函数查询,内嵌字段查询(nestad field)
(8)索引支持:支持单key索引,复合索引,唯一索引,内嵌字段索引;查询执行时,mongodb的查询优化器会尝试多种查询计划,并挑选最优的计划执行;
(9)集函数支持(aggregation function);
(10)主从、副本的支持:mongodb支持主从结构,主db能执行读操作与写操作,从db从主db拷贝数据,从db只能执行读操作;
画外音:超多帅气特性,动不动心?

四、与MySQL的最大不同

MySQL是关系型的数据库,而mongodb是schema-free的,它更像一个键值存储系统(kv),但与kv不同的是,它又能像MySQL的模式一样,能修改文档内的数据,并对内部数据进行索引。

mongodb文档以BSON格式存储,即Binary JSON,BSON是一种二进制交换格式,类似Google Protocol Buffer。

所以,
一般把MongoDB归为NoSQL阵营,这是它与MySQL的最大不同。


我11年在58同城做即时通讯系统,曾经用mongodb存储过10亿的消息记录每秒1W读写并发,且没有使用缓存,直接用mongodb硬抗读写,牛不牛逼?
画外音:不用缓存,系统架构与业务流程,都能极大简化!

当然,1分钟只能了解个大概,如果想要深入的GET新技能,推荐下极客时间的《MongoDB高手课》
👆扫码免费试看
输入优惠口令「MONGODB66」再减 10 元,¥89 到手
仅限 「前 200 人

这是一门从原理,到精髓,到应用,到架构的“实践类”课程,不信可以看看目录
    

从今以后,固化存储层除了MySQL,你又多了一项选择;架构设计,又多了一个工具。


👆扫码订阅,输入优惠口令「MONGODB66」
再减 10 元,仅限「前 200 人


技多不压身,还在等什么呢?
👇点击
「阅读原文」使用口令, ¥89 入手。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/50043
 
895 次点击