php如何处理十几万的读写

新手上路,请多包涵

有一个结算佣金的场景,目前有十几万用户,需要每天同时给每个用户结算佣金,该怎么做能够非常快速的做完这个处理,yii框架,目前的时间是半个小时左右

阅读 2.7k
4 个回答

做成多个任务多个任务,比如说一共有10w条数据,分成10个任务,每个任务1w条数据。结算时10个任务同时进行。理论上是可以将效率提升10倍,至于怎么分配数据。可以根据id取模,或者其他方式分配数据

像这种结算,比较偏IO密集型的业务,适合在系统闲时处理。
任务的话,是推荐多任务的。
你开启10个脚本。
用户id%10 每个脚本处理属于自己的用户。这样任务之间就不会互相干扰
同时要考虑到:结算的时候,用户与用户之间是否会关联,或者对一些数据公共读写,这个就要考虑到锁的问题,还是数据脏读幻读的情况。

起一个队列慢慢去写。
有时间限制的话,就多起几个进程。
怕影响当前项目的话,就单独部署或者新的项目

批量 事务提交 能快上数倍
我有个程序,一次执行 大概 insert / update 二十来万记录
业务不算很复杂,不用事务大概要超过 45分钟,用事务分批提交,大概在5分钟内

推荐问题
宣传栏