大佬们erp系统怎么解决联表多问题
java吧
全部回复
仅看楼主
level 5
H0neY 楼主
我们公司做erp系统,在查出库订单要联表十几张表,返回上百个字段,这种情况导致sql非常复杂和慢,这种情况怎么解决,重新设计表还是优化sql
2026年01月01日 08点01分 1
level 1
很正常
2026年01月01日 13点01分 2
level 8
用搜索引擎,大表
2026年01月01日 13点01分 3
level 1
最常规的做法是冗余物理表,你可以研究下用友的数据字典
2026年01月01日 17点01分 4
[url]https://www.dblens.com/cn?c=1111 [/url] 推荐 国产可视化数据库管理工具 免费还好用,快来试试吧!!!
2026年01月06日 02点01分
level 1
非实时场景,找空闲时间做数据处理加工;
实时场景,只能修代码,在写入时同步做数据处理
2026年01月01日 23点01分 5
数据处理具体咋处理,有点疑惑
2026年01月03日 11点01分
@H0neY 任务跑中间表,比如你需要关联ABCD表,其中AB表你需要A1和B1字段,写一个任务在空闲的时候跑,把这两个数据抓到中间表T,到时候用T+CD表关联
2026年01月05日 02点01分
@KevinZh 这是不是只能处理那些表数据不怎么变化的表
2026年01月05日 03点01分
@H0neY 分很多种场景吧,比如我现在做的是订单管理的,一条3000万条订单,每天自动跑T-1的数据,生成汇总数据到汇总表,到时候跑月报就是从这些汇总表再汇总的,要是直接从明细表去汇总,拿数据量能到接近10e了
2026年01月05日 03点01分
level 6
先做个数据加工,
2026年01月02日 00点01分 6
意思是应用层并行查询,然后组装数据么
2026年01月03日 11点01分
@H0neY 不不不,只是先闲时加工而已,和5L一个意思。非实时业务做闲时任务处理,实时业务则字段冗余处理。
2026年01月07日 03点01分
level 9
很正常,我这边查一百张表,总耗时5ms。响应式编程
2026年01月03日 02点01分 7
疑惑😦 点开主页🤔 豁然开朗😆
2026年01月04日 11点01分
@饱狗 一看就是玩原神的[笑眼][笑眼][笑眼]
2026年01月04日 15点01分
@手滑抢人头 我这里单表几十万数据量命中索引的情况就已经是10几毫秒了,你100张表才5毫秒,除了我说的那3种情况,绝无其他可能了 机器性能好的情况下,确定没有命中缓存?看过执行计划吗
2026年01月04日 02点01分
@你是不是傻吖😈 一眼吹牛逼 要是业务系统100张表5ms 估计是次次命中缓存
2026年01月04日 09点01分
level 1
看情况处理,最简单就是优化sql,或者加缓存,加索引之类看看能不能解决。不行就是专门为这个查询功能加表加字段,去维护数据
2026年01月04日 00点01分 8
level 8
要查询的数据量不大,联表主键关联压根就不会慢
2026年01月04日 00点01分 9
level 11
创建实体化视图
2026年01月04日 01点01分 10
level 14
加索引喵,还不行就加中间表抽一张join完的定时跑
2026年01月04日 10点01分 11
类似oracle的视图吗
2026年01月05日 00点01分
@难忘の旋律 用Oracle的视图也可以吧。不过我一般用的就是直接建个普通的表,然后用调度进行数据同步[乖]
2026年01月05日 06点01分
level 1
加服务器,每天早上上班前先查询一遍数据库然后全部放Redis里面[笑眼][笑眼][笑眼]
2026年01月04日 10点01分 12
level 7
预处理比较靠谱一点吧
2026年01月04日 20点01分 13
level 7
先索引之类的优化sql的方法试试,不行的话看数据的实时性,实时性不高T+1这种,预处理,视图或者表数据凌晨生成就行,再不行业务层组合数据,再不行换数据库。
2026年01月05日 01点01分 14
level 2
把接口要求发给ai,让ai来帮忙[呵呵]
2026年01月05日 02点01分 15
1 2 尾页