慢查询是明道云工作流排队影响较大的因素之一,原因是数据库大了,即便只需要几条数据的汇总结果,都会进入慢查询,优化的方式是建立索引,(详见官方对慢查询的成因说明
对你的常用筛选条件建立索引是很有必要的。
再往下拆分,就是服务器的 SSD 升级,CPU 升级,成本巨大,甚至还想过迁移云数据库。但是云数据库也有性能且成本非常高。
这里我分享一个,可能不太成熟的邪招,只有思路,也在应用中。
场景:有一个我们优化的对象,超大的数据库,每天都在进数据,但是你常用的只需要几百条,几十条,数据,这个数据,我们称呼为数据组。有个辅助表或者有关联联关系的表,能把你常用的数据库内的数据组和这个表进行关联。
思路:用 JSON 存储这些数据组到一个文本字段内,需要汇总,取数据时,再去这里面去抓。
需要做的工作:用封装业务工作流,两个进入值,一个是当前要处理的数据记录 ID,一个是当前的主数据的数据组 JSON 或者这个主数据的记录 ID。
工作流
1.抓要处理的数据
2.抓主数据
3.代码块:输入要处理的数据中的要的字段,输出为 JSON,要输入记录 ID 作为主键
4.代码块:输入要处理的 JSON 和主 JSON,用一个主键去更新,输出一个新的数组
承担的功能是增改。用一个无效字段去存储这个是否无效。当然你可以在封装业务工作流,输入一个模式,加删除,来删除这个 JSON
5.更新 4 代码块输出的内容到主数据
把要修改的这个数据,配置上增删改时进入这个封装业务工作流。
这样一调整,我只用去抓主数据,而不需要去频繁访问这个大数据库频繁慢存储。
如果有用,后续还可以分享下,对千万条,超大规模的数据报表如何直接在明道云中。低算力的呈现。
后续如何汇总就需要另外的工作流带一个代码块,去汇总了。