当前播放: 33 | MongoDB索引机制(一)
00:00 / 00:00
高清
  • 高清
1.0x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看
课程目录
第一章:MongoDB再入门 (12讲)
01 | 课程介绍
免费
02 | 内容综述
免费
03 | 认识文档数据库MongoDB
免费
04 | MongoDB特色及优势
免费
05 | 实验:安装MongoDB
免费
06 | MongoDB基本操作
07 | 实验:Hello World程序开发
08 | 聚合查询
09 | 实验:聚合查询
10 | 复制集机制及原理
11 | 实验:搭建MongoDB复制集
12 | MongoDB全家桶
第二章:从熟练到精通的开发之路 (12讲)
13 | 模型设计基础
14 | JSON文档模型设计特点
15 | 文档模型设计之一:基础设计
16 | 文档模型设计之二:工况细化
17 | 文档模型设计之三:模式套用
18 | 设计模式集锦
19 | 事务开发:写操作事务
20 | 事务开发:读操作事务之一
21 | 事务开发:读操作事务之二
22 | 事务开发:多文档事务
23 | Change Stream
24 | MongoDB开发最佳实践
第三章:分片集群与高级运维之道 (16讲)
25 | 分片集群机制及原理
26 | 分片集群设计
27 | 实验:分片集群搭建及扩容
28 | MongoDB监控最佳实践
29 | MongoDB备份与恢复
30 | 备份与恢复操作
31 | MongoDB安全架构
32 | MongoDB安全加固实践
33 | MongoDB索引机制(一)
34 | MongoDB索引机制(二)
35 | MongoDB读写性能机制
36 | 性能诊断工具
37 | 高级集群设计:两地三中心
38 | 实验:搭建两地三中心集群
39 | 高级集群设计:全球多写
40 | MongoDB上线及升级
第四章:企业架构师进阶之法 (13讲)
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 | 结束语
33 | MongoDB索引机制(一)

33 | MongoDB索引机制(一)

唐建法(TJ)
Tapdata CTO、MongoDB中文社区主席、前MongoDB大中华区首席架构师
53讲 约500分钟4218
单独订阅¥129
2人成团¥99
2
本节摘要

亲爱的学员:
你好,从 11 月开课到现在已经 2 个多月,希望大家一路学习过来有了不少的收获。在回答学员问题的过程中,我发现大家对于第二章的事务处理, 特别是隔离级别,以及第三章的分片集群有相对较多的问题。在这里我给大家推荐一些补充的学习材料可以从另外一个角度来加深一些这些概念的理解。
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= 分片集群
春节假期,我们的课程将在 1 月 29 日停更一次,于 2 月 5 日恢复更新,春节后我们将推出第四章架构相关的内容,敬请期待!

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

展开
登录 后留言

精选留言(8)

  • 奔奔奔跑
    用电脑看视频入迷了,哈哈,都忘了还有留言栏可以与老师交流了。
    老师,我有个问题要请教,按理来说mongodb的objectID是时间戳+机器码+PID+计数器构成的,按理来说我用(sort:_id)进行排序,新插入的数据排序出来应该在最后才对,但是为何我有几次看到新插入的数据排序在旧数据之前。请问这是为什么?如果没有问题的话,那是不是就意味着不能用objectID作为时间排序的索引了?希望老师能够解答,谢谢唐老师了!

    作者回复: 最后一个不是计数器,是随机数

    纠正上面的内容,ObjectID的格式有所修改:

    ObjectID有12个bytes,分别为:

    - 4个字节的timestamp(精确到秒)
    - 5个字节的随机数
    - 3个字节的计数器

    MongoDB并未在文档中提到保证这个_id的顺序性。不过实际上如果在同一个客户端进程,应该是有这种顺序性的。
    你把你的流程贴出来看一下





    2020-01-22
    2
  • hal
    老师好,看完评论有个疑惑,为什么视频中讲MongoDB的索引是B-树,但是评论区中看到老师的回复,说MongoDB的索引是B+树?

    作者回复: 视频是错的 - 我们正在试图修复。

    2020-02-20
    1
  • qbit
    请问 mongoDB 可以定义类似 MySQL 的 create_time 和 update_time 字段吗?

    作者回复: 可以参考 $currentDate

    https://docs.mongodb.com/manual/reference/operator/update/currentDate/

    2020-01-20
    1
  • Allen_
    老师,我是从理论课解除到B数的,对于纯数字的操作比较清晰。但是我们实战中把lastname这种作为index,这种非数字的该怎么查找呢?
    换句话说,数字可以保证我的数大于此index就肯定在右边找,但是这些非数字的怎么保证呢?

    作者回复: 对计算机来说,数字和字符串没什么差别。字符串也是0101表示的。

    2020-03-03
  • Cary
    单个文档大小35KB,共有500w记录,容器内存7GB,创建索引内存不够,导致容器关闭,老师,请问如何处理?
    2020-03-01
  • 注意力$
    唐老师,MongoDB 磁盘目录清理的话,是直接删除集合吗?删除集合部分数据,可以释放空间吗?谢谢

    作者回复: 不能。必须删除整个集合才会回收

    2020-02-03
  • 月迷津渡
    请问下老师 一般范围查询比如年龄4-18的查询 B+树是用叶子节点的链表遍历,那mongodb怎么做的呢?是用B树做类似于2茶树的中序遍历么?

    作者回复: mongodb用的就是B+树,如你所述在叶子节点层遍历。

    2020-01-27
    1
  • 奔奔奔跑
    感谢老师的回复,假期了还这么负责太感动了。但是我还是觉得有疑惑,MongoDB应该可以用objectID来排序吧,虽然最后的是随机数,但是时间戳在前面,新插入数据肯定比旧数据要大吧

    作者回复: 已修改原回复内容。

    2020-01-22
收起评论
看过的人还看
Elasticsearch核心技术与实战

阮一鸣  eBay Pronto平台技术负责人

100讲 | 18812 人已学习

拼团 ¥99 原价 ¥129
设计模式之美

王争  前Google工程师,《数据结构与算法之美》专栏作者

100讲 | 21388 人已学习

拼团 ¥129 原价 ¥199
数据结构与算法之美

王争  前Google工程师

79讲 | 76969 人已学习

拼团 ¥79 原价 ¥99
MySQL实战45讲

林晓斌  网名丁奇,前阿里资深技术专家

48讲 | 48113 人已学习

拼团 ¥79 原价 ¥99