一个外包同事,插入 200 条数据,调用了四万次人员查询接口

229 天前
 murmur

插入数据要求工号转 ID 这个步骤,让他调接口去查这个映射,实际上这个查询也不慢,100ms ,反正是一次性操作,这个数据迁移做了再就不做了,查库查表区别不大

相关的公司只有 200 多人

按一个记录审批人+干系人 10 个人(很多了,一般流程才五六个节点)算,不缓存,200 条数据也就 2000 次调用

这个 4w 次我至今没想明白是怎么弄出来的,但是我终于明白 200 条单表操作 1 个小时没做完的原因了

整个逻辑是这样 ( 1 ) A 系统查询待办主表数据-A 系统查询审批记录(平均 1 个单 5 个流程节点)-查询 A 系统的人员工号-查询 B 系统的工号 ID 映射-插入最终数据(拼接为一条,这里插入是不涉及子表的)

不是有人再说怎么挖坑还不留痕迹么

多跟外包学学自然就会了

12335 次点击
所在节点    程序员
96 条回复
AoEiuV020JP
229 天前
见过类似的,不过我这边是安卓客户端所以影响不大,埋了好多年的坑后来优化的时候发现的,
就是 for 循环判断里的 i < getData().size(), 循环节里还有一堆 getData().get(i), 然后这个 getData()里面是完整读数据库,
coffeygao
229 天前
常规操作,我也遇到过。拼凑一个数组,三层嵌套里面全是 select 哈哈哈哈
lincanbin
229 天前
合格程序员其实是凤毛麟角的存在。
onikage
229 天前
强调外包同事啥意思?显得自己一些?
Daniel17
229 天前
这跟外不外包没关系吧
murmur
229 天前
@onikage 因为是实事求是
Narcissu5
229 天前
其实很多公司的大数据需求就是这么来的,你想如果查询接口每次都记录日志,一下子就有 40000 条数据可以分析了
murmur
229 天前
@Narcissu5 你倒是提醒我了,我还得去清理日志表,别到时候日志爆了,本身就是边角料日志部分设计的没有主表日志那么完善
coderluan
229 天前
如果楼主的逻辑成立,那责任人也应该是决定用外包的领导,或者给这个外包面试通过的同事哦。
Badlink
229 天前
逻辑没太懂,是说 “A 系统查询待办主表数据-A 系统查询审批记录(平均 1 个单 5 个流程节点)-查询 A 系统的人员工号” 这部分调了 count(代办住表数) * count(审批记录) * count(A 系统人员) 这些次数?
nothingistrue
229 天前
这种错误,你只要搞代码评审,或者结对编程,那就很难出现。不把代码评审计入成本时间,或者把成本挤到下班时间,那就别怪搞出来神仙代码。
TWorldIsNButThis
229 天前
就是没做 batching ?
bk201
229 天前
人家就是混口饭吃,也是朝不保夕,被开了还没赔偿,你还能对对方有什么要求。只能怪公司为了节省成本坑正式员工。
hxy2856
229 天前
@bk201 被开了没赔偿好惨
shmilypeter
229 天前
估计是连了几张表导致笛卡尔积乘了几次
gaifanking
229 天前
盲猜 200x200=4w
devopsdogdog
229 天前
😏你就说能不能用吧!
6c67461c562bdc
229 天前
好奇。。为什么要外包?不就是为了有个背锅的吗?现在不就是背锅时刻?只不过不知道为什么要喷他。。。。
kangmang92
229 天前
你优化优化不就来了 kpi 吗
xingjue
229 天前
合格程序员其实是凤毛麟角的存在。

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

https://www.v2ex.com/t/976149

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

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

© 2021 V2EX