生成器
什么是生成器?官方的解释是:一种更容易的方法来实现简单的对象迭代,相比较定义类实现 Iterator 接口的方式,性能开销和复杂性大大降低。简单的说就是在foreach循环的时候,最大限度的减少内存的开销。
Python中也有generator,作用是一样的,只不过PHP从5.5版本才引入。
场景描述
项目中需要将大批量的特殊用户进行状态修改。最初是考虑MySQL直接批量修改的,但是无奈没有写出可用的SQL,所以想到用PHP来处理。(后续还是使用了SQL的方式处理用户,等下一篇讲高效的MySQL是如何处理的。)
实践
简单的思路是,按条件将所有要修改的用户查出来,然后遍历一个个Update。(我知道这个是有点渣的写法=。=!)通过生成器去执行,减少内存的暂用。
|
|
上万条数据很快处理完成,内存几乎没有多少飙升。
下一篇介绍一下,正确的使用SQL语句的处理方法。