《MongoDB高手课》学习记录(第十五天)

第十五天

今天学习《18 | 设计模式集锦》,主要讲了列转行、版本字段、近似计算、预聚合四个文档设计模式和它的应用场景。干货很多。

列转行

以存储电影信息的文档为例,因为各个国家的首映时间不同,我们的最简单的想法可能为了统计方便,会每增加一个上映地点,就增加一个统计字段,然后再给这个字段建一个索引。这样统计查询的速度是快了,但是系统写入的效率却下降了。
image.png
那么怎么解决这个问题呢?采用内嵌数组的方式来组织数据,减少字段数量。然后通过建立内联索引来解决查询的问题。
image.png

小结

image.png

版本字段

文档模型的优势就是可以灵活的组织数据,但是面临的问题,就是到底什么时候对文档进行了更改,没办法直观的看出来。
image.png
怎么解决这个问题呢?加个版本字段。这样就可以直观看出来,当前文档是什么版本,当前这个版本的文档与上一个版本有什么区分,也方便升级。
image.png

小结

image.png

近似计算

要对一个页面的点击量进行统计,也就是埋点每点击一次,就更新一下统计数据,但通常我们的统计并不是要求非常精确的。这样造成的问题就是,系统大部分压力都产生在更新点击数量上了。
image.png
怎么解决?使用近似计算,也就是原来我是每点击一次就更新一下,调整为每隔N次,比如10次更新一下数据。
image.png

小结

image.png

预聚合

这个模式与上个相比就是要求统计精确的数据。比如销售业绩,游戏排名等,这样的,我们基本就是通过聚合计算来进行数据的汇总。但这样造成的问题就是每次统计都会造成系统计算压力过大。
image.png
怎么解决?将统计分解到文档中,也就是给文档预置统计字段,每次更新都更新一下统计数据,减少集中统计时候的系统压力。
image.png

小结

image.png

总结

今天课程就是讲解了这4个模式,看起来很简单,但想要用好,确实需要多多思考。明天开始事务的学习。


小破孩儿的成长记录
记录个人学习成长的点点滴滴。

把这辈子活的热气腾腾!

68 声望
25 粉丝
0 条评论
推荐阅读
《JavaScript 教程》学习补遗(八)
(1)console.log方法用于在控制台输出信息。它可以接受一个或多个参数,将它们连接起来输出。console.log方法会自动在每次输出的结尾,添加换行符。

xiaopohair阅读 955

(学习到实践)七、mongodb测试,php+nginx负载均衡的部署
从测试容器中匹配搜索得到 mongod.conf.orig,设置可以启动,网上查找配置项反不能启动,原因是配置是yaml格式!好像听说过。百度查询得到:官方配置说明,网站卡得出奇。

沧浪水阅读 2.7k

MongoDB 4.4 扩展为副本集(qbit)
前言有一台单实例 MongoDB 服务器已经运行半年了,需要将其扩展为副本集3 台服务器的操作系统均为 Ubuntu 20.043 台服务器的 MongoDB 版本均为 4.4扩展示意图操作步骤备份 mongo0 上的数据修改配置文件 /etc/mong...

qbit阅读 2.3k

centos7安装mongodb
准备工作:1、在root目录下创建文件夹software {代码...} 2、进入software文件 {代码...} 以下是mongodb的具体安装步骤和文件配置1. 下载mongodb3.6.3版本 {代码...} 2. 解压文件 {代码...} 3. 把解压后文件移动...

sourcenode阅读 2.3k

Mac环境下安装MongoDB数据库
一、下载安装1.1 下载MongoDB首先,从MongoDB官网下载自己想要使用的版本。解压缩下载的压缩包重命名为mongodb,将mongodb文件夹复制到/usr/local目录下。当然,除了上面的安装方式外,我们还可以使用Mac OSX的br...

xiangzhihong1阅读 439

bug solved | zsh: command not found: mongo (Mac M1/M2 )
退回MongoDB 5 解决了,,,后来发现把5安装包的/usr/local/mongodb/bin目录下的mongo文件复制到6中同样也能解决。所以最终方法是:把5安装包的/usr/local/mongodb/bin目录下的mongo文件复制到6中

LiberHome2阅读 711评论 1

NineData 核心技术揭秘
NineData 是一个多云的数据管理平台,所以多云和多源是我们要解决的非常重要的问题,上图的最上层是我们支持的数据库类型,从设计上来说,我们要支持市面上所有主流的数据库,既支持MySQL、PostgreSQL、SQLServer...

NineData阅读 697

封面图

把这辈子活的热气腾腾!

68 声望
25 粉丝
宣传栏