MongoDB 高手课
唐建法(TJ)
Tapdata CTO、MongoDB 中文社区主席、前 MongoDB 大中华区首席架构师
19351 人已学习
新⼈⾸单¥59
课程目录
已完结/共 53 讲
MongoDB 高手课
登录|注册
留言
9
收藏
沉浸
阅读
分享
手机端
回顶部
当前播放: 35 | MongoDB读写性能机制
00:00 / 00:00
高清
  • 高清
1.0x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.75x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看
01 | 课程介绍
02 | 内容综述
03 | 认识文档数据库MongoDB
04 | MongoDB特色及优势
05 | 实验:安装MongoDB
06 | MongoDB基本操作
07 | 实验:Hello World程序开发
08 | 聚合查询
09 | 实验:聚合查询
10 | 复制集机制及原理
11 | 实验:搭建MongoDB复制集
12 | MongoDB全家桶
13 | 模型设计基础
14 | JSON文档模型设计特点
15 | 文档模型设计之一:基础设计
16 | 文档模型设计之二:工况细化
17 | 文档模型设计之三:模式套用
18 | 设计模式集锦
19 | 事务开发:写操作事务
20 | 事务开发:读操作事务之一
21 | 事务开发:读操作事务之二
22 | 事务开发:多文档事务
23 | Change Stream
24 | MongoDB开发最佳实践
25 | 分片集群机制及原理
26 | 分片集群设计
27 | 实验:分片集群搭建及扩容
28 | MongoDB监控最佳实践
29 | MongoDB备份与恢复
30 | 备份与恢复操作
31 | MongoDB安全架构
32 | MongoDB安全加固实践
33 | MongoDB索引机制(一)
34 | MongoDB索引机制(二)
35 | MongoDB读写性能机制
36 | 性能诊断工具
37 | 高级集群设计:两地三中心
38 | 实验:搭建两地三中心集群
39 | 高级集群设计:全球多写
40 | MongoDB上线及升级
41 | MongoDB应用场景及选型
42 | MongoDB典型案例(一)
43 | MongoDB典型案例(二)
44 | 关系型数据库迁移
45 | 数据库迁移方式及工具
46 | Oracle迁移实战
47 | MongoDB + Spark实时大数据
48 | MongoDB + Spark连接实战
49 | MongoDB SQL套接件
50 | MongoDB与微服务
51 | MongoDB与数据中台
52 | MongoDB数据中台案例
53 | 结果测试&结束语
本节摘要

亲爱的学员:
你好,在回答学员问题的过程中,我发现大家对于第二章的事务处理, 特别是隔离级别,以及第三章的分片集群有相对较多的问题。在这里我给大家推荐一些补充的学习材料可以从另外一个角度来加深一些这些概念的理解。
MongoDB 事务的原子性
https://docs.mongodb.com/manual/core/write-operations-atomicity/
MongoDB 事务的隔离级别和一致性模型
https://docs.mongodb.com/manual/core/read-isolation-consistency-recency/
如果英文不太感冒,在 MongoDB 中文网站上有不少内容,比如分片相关的:
http://www.mongoing.com/?s= 分片集群

课件和 Demo 地址
https://gitee.com/geektime-geekbang/geektime-mongodb-course

展开
登录 后留言

全部留言(9)

  • 最新
  • 精选
黄智寿
这个ticket默认是128,一般调高这个值的时候需要参考哪些指标?比如物理机内存?cpu核数?节点数?有没有相关经验的最佳实践分享下?谢谢

作者回复: ticket一般只是个标志,如果发现用光,是因为你的物理资源不够,主要是IOPS,少数时候CPU。这个时候不是调高tickt,而是优化硬件资源。

2020-02-13
4
hal
唐老师新年好,听完写入操作的过程,有点好奇,oplog和journal日志能不能合并呢,我的理解的话就是oplog是个定容的集合,存放的记录都是幂等操作,用于mongodb的复制集模式,从主节点复制到其他slave节点保证数据的一致,journal日志是用于mongodb crash之后恢复的一个日志。那crash恢复能不能也用oplog呢?

作者回复: oplog记录的是对数据库的逻辑操作, 在MongoDB里面用一个固定大小的普通集合来记录,和其他的数据一样,默认增删都是在内存里发生。 journal 和其他数据库类似,采用WriteAheadLog机制,用来提供对数据库写入操作的一致性和持久性保证。它记录的是要对数据物理区块修改的一些动作。 Journal 日志和Oplog理论上都可以用来恢复,但是journal比较底层,直接操作存储区,写入和恢复效率要比oplog 日志高,所以通常数据库都会采用专门的journal来做crash recovery.

2020-01-27
2
3
磐石
老师您好!最近做了个前端监控分析的系统,使用了MongoDB作为数据库,现在每天的存储记录达到300W+条,查询返回百万级数据这块不知道怎么优化,老师有什么建议吗?谢谢!

作者回复: 你需要对这些数据做pre-aggregation,按照时间颗粒度,获得分钟级平均数,小时级平均数,把他们事先存到库里,给前段展现用。这样的话你就不需要返回大量的原始数据再在应用里做计算了。

2020-05-09
1
长脖子树
老师你好, 我在分别在 4核8G 普通硬盘和 SSD 上测试(使用的是阿里云), 只测试了 insert 性能, 使用的是mongodb默认配置, 单机没有复制集, 在普通云盘上最高 15000 次/秒, 在 SSD 上最高 17000 次/秒, 虽然测试中感觉 ssd 的insert 性能比普通云盘的insert 性能稳定, 但是实际差距并不是很大, 我想请问老师, 有哪些参数/操作可以让 insert 性能更进一步 具体IOPS等参数, 测试结果见链接 https://www.processon.com/view/link/5e58867ee4b0cc44b5b17f21

作者回复: insert 特别是使用batch写的时候普通盘性能也可以挺快的。 你要测试随机读写,就可以看出区别了

2020-02-28
2
Jast
老师您好,想问下一次性读取数据比较大有什么优化方案吗?一次取数据量都在50w以上。目前用spring mongo data 时间都要在2分钟
2020-08-24
2
刘金生
老师,journal和oplog不在一个事务里,是如何本证如果oplog成功,而journal不成功造成的数据不一致性
2022-07-21
1
Hoboson!
老师好:我们的数据库数据量16T增加一个second节点,同步数据报这个错误 ,这个影响同步吗 ,会不会最后失败,错误:Restarting oplog query due to error: ExceededTimeLimit: operation exceeded time limit. Last fetched optime (with hash): { ts: Timestamp 1639448007000|222, t: 33 }[3951692676946563652]. Restarts remaining: 3
2021-12-14
扬一场远远的风
请问一下,mongod执行应用端发送的请求是异步还是同步?另外ticket 不足操作会等待,这个等待队列的长度与mongostat 中看到的qr|qw是同一个吗?
2020-05-14
kylexy_0817
感觉MongoDB的机制有点和ElasticSearch类似,都是先操作缓存同时写日志,一个叫Oplog,一个叫transactonLog
2020-04-03
收起评论