咨询一下大家 activiti 几百万数据查询慢怎么办

2022 年 7 月 21 日
 cannotfindobject

如题

4071 次点击
所在节点    Java
16 条回复
tomczhen
2022 年 7 月 21 日
性价比高的方案:找篇 mysql 数据库查询执行计划分析的文章看看。
bootvue
2022 年 7 月 21 日
硬删除 long long ago history & 关联数据
cannotfindobject
2022 年 7 月 21 日
@tomczhen 每次查询 type 都是 all ,不知道如何保全数据和业务逻辑的情况下如何进行下一步优化
cannotfindobject
2022 年 7 月 21 日
@bootvue 旧数据也要留着:)
wxf666
2022 年 7 月 21 日
为何不先加 ASSIGNEE_索引试试呢?
wolfie
2022 年 7 月 21 日
可以建索引。
根据 ASSIGNEE_ 查询的为什么不是 ACT_HI_TASKINST
JohnYehyo
2022 年 7 月 21 日
前端页面无非展示三类数据:待办、在办、已办结
可能业务特点吧,我们的表里不会有很多的在办理的流程, 但是历史记录很多
所以 以前用 activiti 的一个笨办法:
前两种直接用的 TaskQuery 对象查
最后的办结直接查的业务表而非 activiti 的历史表
potatowish
2022 年 7 月 21 日
加索引试试,然后查询历史记录尽可能用自己的业务表,activiti 的历史记录表隔一段时间清理一次指定时间之前的数据。
cannotfindobject
2022 年 7 月 21 日
@wolfie 700w 建立索引在生产环境会有什么影响吗
wolfie
2022 年 7 月 21 日
@cannotfindobject
建立索引时候卡顿 10 来秒吧,700w 不算大数据量。
可以建立个 copy 表试一下。
QBS
2022 年 7 月 22 日
前面大佬已经说了,无非:待办、在办、已办结。我当时的处理就是将已办结的流程信息保存在自己的业务表中,我们使用的 mongodb ,因为这部分信息基本不会再发生改变了。而一般来说待办、在办这部分的流程应该相对都是比较少的。
Belmode
2022 年 7 月 22 日
@QBS 对的,冷热分离。
alen0206
2022 年 7 月 22 日
activiti 自带的表是可以建索引的
cannotfindobject
2022 年 7 月 22 日
@Belmode 现在打算把已办结的数据都打到 es 里。
cannotfindobject
2022 年 7 月 22 日
@alen0206 主要担心会不会对流程产生其他影响,比如插入效率之类的
cannotfindobject
2022 年 7 月 22 日
@QBS 谢谢大佬,确实是前期设计的时候欠考虑了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.ih06.com/t/867814

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX