背景:在某个财务数据单中,增加一列银行备注。
方案一:通过 收款单号(例如:20220419ABA00100000099072773758) 查询到交易单号(例如:2022041940000001317768330300405),再查询到充值单号(例如:1003703828D6399362770464900575),再查询到 备注 信息,付款集群,db_loan_xx.charge_xx_x ,字段 bank_comment。由于该表是以付款中心的充值单号进行切割,无法进行关联查询,因此需要先查询当天全部充值记录,然后在进行交易单号的匹配
缺点:涉及到不同集群,只能通过关键索引关联,查询数据集合for循环,在查另外集群,运行后存在一定的脚本时长。测试统计大概用时1小时。如果关联字段不存在索引将耗时8小时左右。
方案二:通过大表db_loan.big_charge,该表在F_create_time字段上建有索引,查询时加上创建时间。每一天的数据大概在10w-20w之间。查询该表一天的交易数据,然后for循环该表,将收款单号作为key,备注2作为value,以数组的形式存在内存中。在写入时,直接使用收款单号的数组下标。
缺点:对内存要求较大。需要提前判断内存量
方案三:一二方案折中,收款单号每500次进行查询一次,然后使用where in 查询银行备注字段,存入内存,循环写入。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。