白乱乱

分享-超大数据表慢查询的优化

白乱乱Lv.4悟道 发布于 最后回复 问答
1 回复87 浏览

慢查询是明道云工作流排队影响较大的因素之一,原因是数据库大了,即便只需要几条数据的汇总结果,都会进入慢查询,优化的方式是建立索引,(详见官方对慢查询的成因说明

对你的常用筛选条件建立索引是很有必要的。

再往下拆分,就是服务器的 SSD 升级,CPU 升级,成本巨大,甚至还想过迁移云数据库。但是云数据库也有性能且成本非常高。

这里我分享一个,可能不太成熟的邪招,只有思路,也在应用中。

场景:有一个我们优化的对象,超大的数据库,每天都在进数据,但是你常用的只需要几百条,几十条,数据,这个数据,我们称呼为数据组。有个辅助表或者有关联联关系的表,能把你常用的数据库内的数据组和这个表进行关联。

思路:用 JSON 存储这些数据组到一个文本字段内,需要汇总,取数据时,再去这里面去抓。

需要做的工作:用封装业务工作流,两个进入值,一个是当前要处理的数据记录 ID,一个是当前的主数据的数据组 JSON 或者这个主数据的记录 ID。

工作流
1.抓要处理的数据
2.抓主数据
3.代码块:输入要处理的数据中的要的字段,输出为 JSON,要输入记录 ID 作为主键
4.代码块:输入要处理的 JSON 和主 JSON,用一个主键去更新,输出一个新的数组

承担的功能是增改。用一个无效字段去存储这个是否无效。当然你可以在封装业务工作流,输入一个模式,加删除,来删除这个 JSON
5.更新 4 代码块输出的内容到主数据

把要修改的这个数据,配置上增删改时进入这个封装业务工作流。

这样一调整,我只用去抓主数据,而不需要去频繁访问这个大数据库频繁慢存储。

如果有用,后续还可以分享下,对千万条,超大规模的数据报表如何直接在明道云中。低算力的呈现。