【日常运维】mongoDB学习-入门介绍-其强大之处以及用武之地

 本站以分享各种运维经验和运维所需要的技能为主

《python零基础入门》:python零基础入门学习

《python运维脚本》: python运维脚本实践

《shell》:shell学习

《terraform》持续更新中:terraform_Aws学习零基础入门到最佳实战

《k8》暂未更新

《docker学习》暂未更新

《ceph学习》ceph日常问题解决分享

《日志收集》ELK+各种中间件

《运维日常》运维日常

《linux》运维面试100问

mongoDB学习

一、NoSQL介绍#

1.NoSQL 简介#

NoSQL(NoSQL = Not Only SQL ),意即"不仅仅是SQL",指的是非关系型的数据库,
是对不同于传统的关系型数据库的数据库管理系统的统称。 
在现代的计算系统上每天网络上都会产生庞大的数据量。 
这些数据有很大一部分是由关系数据库管理系统(RDMBSs)来处理,
也有一部分使用非系型数据库处理 对NoSQL最普遍的解释是"非关联型的",
强调Key-Value Stores和文档数据库的优点,而不是单纯的反对RDBMS。 
NoSQL用于超大规模数据的存储。(例如谷歌或Facebook每天为他们的用户收集万亿比特的数据)。
这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展。 

2.为什么使用NoSQL#

关系型数据库对数据要求严格,而非关系型数据库没有那么严格,
对于大量不同字段的数据,存储更加方便 

二、MongoDB简介#

Mongodb由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。
是专为可扩展性,高性能和高可用性而设计的数据库, 是非关系型数据库中功能最丰富,
最像关系型数据库的,它支持的数据结构非常散,是类似 json 的 bjson 格式,
因此可以存储比较复杂的数据类型。 
MongoDB的(来自于英文单词“Humongous”,中文含义为“庞大”)是可以应用于各种规模的企业,
各个行业以及各类应用程序的开源数据库。 作为一个适用于敏捷开发的数据库,
MongoDB的的数据模式可以随着应用程序的发展而灵活地更新。 
MongoDB 以一种叫做 BSON(二进制 JSON)的存储形式将数据作为文档存储。
具有相似结构的文档通常被整理成集合。 
可以把这些集合看成类似于关系数据库中的表: 文档和行相似, 字段和列相似。 
json格式:{key:value,key:value} bjson格式:{key:value,key:value} 
#区别在于:对于数据{id:1},在JSON的存储上1只使用了一个字节,而如果用BJSON,
那就是至少4个字节 

1.MySQL与mongoDB对比#

1)结构对比#
mysqlMongoDB
集合
字段键值
文档
1)数据库中数据(student库,user表)#
uidnameage
1zhangyu18
2chencgheng28
2)mongoDB中的数据(student库,user集合)#
1) {uid:1,name:zhangyu,age:18} 
2) {uid:2,name:chencgheng,age:28} 
3)区别总结#
1.数据结构不同 
2.数据库添加不存在字段的数据时报错 
3.mongoDB可以添加不存在的字段的数据 
4.mongoDB不需要提前创建好库和表,创建数据直接会帮助我们创建好 

2.MongoDB 特点#

1.高性能: Mongodb 提供高性能的数据持久性,索引支持更快的查询 
2.丰富的语言查询: Mongodb 支持丰富的查询语言来支持读写操作(CRUD)以及数据汇总 
3.高可用性: Mongodb 的复制工具,成为副本集,提供自动故障转移和数据冗余, 
4.水平可扩展性: Mongodb 提供了可扩展性,作为其核心功能的一部分,分片是将数据分在一组计算机上。 
5.支持多种存储引擎: WiredTiger存储引擎和、 MMAPv1存储引擎和 InMemory 
存储引擎 3.0以上版本 3.0以下版本 新的引擎压缩比特别大,原来100个G,
可能升级之后所有数据都在,只占用10个G 
6.强大的索引支持: 地理位置索引可用于构建 各种 O2O 应用、文本索引解决搜索的需求、
TTL索引解决历史数据自动过期的需求 

3.MongoDB应用场景#

1.游戏场景: 使用 MongoDB 存储游戏用户信息,用户的装备、积分等直接以内嵌文档的形式存储,
方便查询、更新 
2.物流场景: 使用 MongoDB 存储订单信息,订单状态在运送过程中会不断更新,
以 MongoDB 内嵌数组的形式来存储,一次查询就能将订单所有的变更读取出来。 
3.社交场景: 使用 MongoDB 存储用户信息,以及用户发表的朋友圈信息,
通过地理位置索引实现附近的人、地点等功能 将送快递骑手、快递商家的信息(包含位置信息)存储
在 MongoDB,然后通过 MongoDB 的地理位置查询,这样很方便的实现了查找附近的商家、骑手等功能,
使得快递骑手能就近接单 地图软件、打车软件、外卖软件,MongoDB强大的地理位置索引功能
使其最佳选择 
4.物联网场景: 使用 MongoDB 存储所有接入的智能设备信息,以及设备汇报的日志信息,
并对这些信息进行多维度的分析 
5.视频直播: 使用 MongoDB 存储用户信息、礼物信息等 
6.电商场景: 上衣有胸围,裤子有腰围,如果用数据库需要分成两个库,
如果使用MongoDB都可以存在一起 
  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值