写这篇博客,正好是
2023年4月5日15:29:31
,是清明节,放假一天,我坐在我的小小租房室内,思考着没思考到啥,哈哈哈,感觉好着急啊!看完了一本《城南旧事》,但是就是不踏实,好吧~我来写一篇最近在学的一个技术为了更优秀的自己~奥利给!!
首先,我们从最初级小白开始(因为自己也是小白~哈哈哈!)
MongoDB
在介绍今个的正主之前,咱们要看看我们的正主的大环境背景和身世
1.什么是NoSql
?
听着这个名字到感觉挺高大上的,其实没啥,就是一种数据库的技术,而且不遵守一些约束的数据库技术,比如事务,表结构它都不遵守那你可能会问?那玩个锤子 别急嘛!!
NoSQL优缺点
换位思考下~,既然满足不了这些,肯定会释放出一些它独有的优势和对应的缺点哈!!
nosql的优点 | 缺点 |
---|---|
1.满足对数据库的高并发读写 | 一般不支持事务 |
2.对海量数据的高效存储和访问 | 实现复杂SQL查询比较复杂 |
3.对数据库高扩展性和高可用性 | 运维人员数据维护门槛较高 |
4.灵活的数据结构,满足数据结构不固定的场景 | 目前不是主流的数据库技术 |
NoSql
分类
序号 | 类型 | 典型代表 | 应用范围 |
---|---|---|---|
1 | key-value | redis ,memcached | 缓存,高并发数据query |
2 | 列式DB | cassandra ,hbase | 分布式文件系统 |
3 | 文档型DB | mongoDB | web应用,并发能力强,表结构可变 |
4 | 图结构DB | infoGrid ,neo4J | 社交网络,推荐系统,关注购机爱你图谱 |
号外!号外!目前的
MongoDB
已经月拉埃越火了,么西么西?有多火,已经超过了redis
,接下来请走近
mongodb
,发现科学,发现美~哈哈哈!
2.什么是MongoDB
?
- 是一个数据库(好像废话!~哈哈)
- 高性能,无模式,文档性
- 如上面的介绍,是``nosql`最热门的的,最像关系数据库
结构是什么样子呢?
数据库中的关系
架构中的应用
从网上摘抄来的哈!!为了更加仔细直观了解
特性:
l 面向集合文档的存储:适合存储Bson(json的扩展)形式的数据;
l 格式自由,数据格式不固定,生产环境下修改结构都可以不影响程序运行;
l 强大的查询语句,面向对象的查询语言,基本覆盖sql语言所有能力;
l 完整的索引支持,支持查询计划;
l 支持复制和自动故障转移;
l 支持二进制数据及大型对象(文件)的高效存储;
l 使用分片集群提升系统扩展性;
l 使用内存映射存储引擎,把磁盘的IO操作转换成为内存的操作;
哪些场合我们会用到呢?
说白了,就是啥场景,能够降低我们的成本,就会用到 (好像说了,又好像没说…)
主要是哪些场景?
应用场合 | 是/否 |
---|---|
不需要事务和复杂的join 支持 | 必须是 |
新应用,需求多变没数据模型无法确定,想快速的迭代 | ? |
需要2000以上的读写 QPS | ? |
需要TB 或者PB 级别的数据存储 | ? |
应用发展迅速,需要能快速水平快速发展 | ? |
要求存储的数据不丢失 | ? |
需要99.99% 的高可用 | ? |
需要大量的地理位置查询,文本查询 | ? |
就借用下老师们的原话:
如果上述有1个
Yes
,可以考虑MongoDB
,2个及以上的Yes
,选择MongoDB
绝不会后悔!
主要在我们的生活中的场景
场景 | 说明 |
---|---|
游戏场景 | 使用 MongoDB 存储游戏用户信息,用户的装备、积分等直接以内嵌文档的形式存储,方便查询、更新 |
物流场景 | 使用 MongoDB 存储订单信息,订单状态在运送过程中会不断更新,以MongoDB 内嵌数组的形式来存储,一次查询就能将订单所有的变更读取出来。 |
社交场景 | 使用 MongoDB 存储存储用户信息,以及用户发表的朋友圈信息,通过地理位置索引实现附近的人、地点等功能 |
物联网场景 | 使用 MongoDB 存储所有接入的智能设备信息,以及设备汇报的日志信息,并对这些信息进行多维度的分析 |
视频直播 | 使用 MongoDB 存储用户信息、礼物信息等 |
好嘞!想要了解更多我们下一篇见(关于
MongoDB
的环境保姆级搭建教程和注意事项)