目前遇到的情况是ACT_HI_ACTINST这个表里有七百万条的数据。
每次根据ASSIGNEE_查询历史流程都需要很长时间
activiti 为这个表设计的索引字段并没有包含ASSIGNEE_
ID_主键还是 varchar 类型
这种情况我可以给ASSIGNEE_添加索引吗?
或者有什么性价比高的方案
|  |      1tomczhen      2022-07-21 17:29:33 +08:00 via Android 性价比高的方案:找篇 mysql 数据库查询执行计划分析的文章看看。 | 
|      2bootvue      2022-07-21 17:33:38 +08:00 硬删除 long long ago  history & 关联数据 | 
|      3cannotfindobject OP @tomczhen 每次查询 type 都是 all ,不知道如何保全数据和业务逻辑的情况下如何进行下一步优化 | 
|      4cannotfindobject OP @bootvue 旧数据也要留着:) | 
|      5wxf666      2022-07-21 17:47:00 +08:00 为何不先加 ASSIGNEE_索引试试呢? | 
|  |      6wolfie      2022-07-21 17:54:03 +08:00 可以建索引。 根据 ASSIGNEE_ 查询的为什么不是 ACT_HI_TASKINST | 
|  |      7JohnYehyo      2022-07-21 18:24:14 +08:00 前端页面无非展示三类数据:待办、在办、已办结 可能业务特点吧,我们的表里不会有很多的在办理的流程, 但是历史记录很多 所以 以前用 activiti 的一个笨办法: 前两种直接用的 TaskQuery 对象查 最后的办结直接查的业务表而非 activiti 的历史表 | 
|  |      8potatowish      2022-07-21 18:37:04 +08:00 via iPhone 加索引试试,然后查询历史记录尽可能用自己的业务表,activiti 的历史记录表隔一段时间清理一次指定时间之前的数据。 | 
|      9cannotfindobject OP @wolfie 700w 建立索引在生产环境会有什么影响吗 | 
|  |      10wolfie      2022-07-21 19:29:17 +08:00 | 
|  |      11QBS      2022-07-22 09:31:16 +08:00 前面大佬已经说了,无非:待办、在办、已办结。我当时的处理就是将已办结的流程信息保存在自己的业务表中,我们使用的 mongodb ,因为这部分信息基本不会再发生改变了。而一般来说待办、在办这部分的流程应该相对都是比较少的。 | 
|  |      13alen0206      2022-07-22 11:05:23 +08:00 activiti 自带的表是可以建索引的 | 
|      14cannotfindobject OP @Belmode 现在打算把已办结的数据都打到 es 里。 | 
|      15cannotfindobject OP @alen0206 主要担心会不会对流程产生其他影响,比如插入效率之类的 | 
|      16cannotfindobject OP @QBS 谢谢大佬,确实是前期设计的时候欠考虑了 |