您的位置:首页 > 数据库 > Mongodb

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

2019-11-19 19:15 1206 查看
一、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 入手。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: