关于php+mysql性能在实际工作中的应用实例
背景:在某个财务数据单中,增加一列银行备注。
方案一:通过 收款单号(例如: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 查询银行备注字段,存入内存,循环写入。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战