php如何处理十几万的读写
有一个结算佣金的场景,目前有十几万用户,需要每天同时给每个用户结算佣金,该怎么做能够非常快速的做完这个处理,yii框架,目前的时间是半个小时左右
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
有一个结算佣金的场景,目前有十几万用户,需要每天同时给每个用户结算佣金,该怎么做能够非常快速的做完这个处理,yii框架,目前的时间是半个小时左右
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(4)
做成多个任务多个任务,比如说一共有10w条数据,分成10个任务,每个任务1w条数据。结算时10个任务同时进行。理论上是可以将效率提升10倍,至于怎么分配数据。可以根据id取模,或者其他方式分配数据
像这种结算,比较偏IO密集型的业务,适合在系统闲时处理。
任务的话,是推荐多任务的。
你开启10个脚本。
用户id%10 每个脚本处理属于自己的用户。这样任务之间就不会互相干扰
同时要考虑到:结算的时候,用户与用户之间是否会关联,或者对一些数据公共读写,这个就要考虑到锁的问题,还是数据脏读幻读的情况。
起一个队列慢慢去写。
有时间限制的话,就多起几个进程。
怕影响当前项目的话,就单独部署或者新的项目
批量 事务提交 能快上数倍
我有个程序,一次执行 大概 insert / update 二十来万记录
业务不算很复杂,不用事务大概要超过 45分钟,用事务分批提交,大概在5分钟内