大数据的批量处理的问题, batch 方法,仍然会遇到百万条的数据量诱发数据库查询超出范围的情况 [ 2.0 版本 ]
代码使用的是官方文档中的关于batch以及each的用法。使用中也确实是按文档中的介绍的走的,但是正式环境中的上百万条数据的时候,越往后越慢。并且会报内存超限的错误,貌似是数据库的查询的结果集太大。但是测试机是正常跑完上万条数据的
有没有使用经验的,给出些许的意见。
官方的介绍如下
use yii\db\Query;
$query = (new Query())
->from('user')
->orderBy('id');
foreach ($query->batch() as $users) {
// $users 是一个包含100条或小于100条用户表数据的数组
}
// or if you want to iterate the row one by one
foreach ($query->each() as $user) {
// $user 指代的是用户表当中的其中一行数据
}
共 5 个回答
岛主
注册时间:2015-05-05
最后登录:2018-04-17
在线时长:12小时51分
最后登录:2018-04-17
在线时长:12小时51分
- 粉丝2
- 金钱590
- 威望0
- 积分710