yii2中批处理和每个有哪些区别

  介绍

这篇文章给大家分享的是有关yii2中批处理和每个有哪些区别的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

我们的数据库常常都是很庞大的,一次查询的结果集也很大,这样很浪费内存,为了降低内存的使用率,我们可以使用yii2的批次和每一方法。

为了让大家看的更明白,我们模拟一个场景,然后通过yii2的调试来查看所有与批/每方法下的内存使用情况。

<强>开始准备

我们先建立一张表,它很简单。

 yii2中批处理和每个有哪些区别

你看到了,它有主键id,会员名用户名,所在省省,现在它是空的。

然后,我们执行了一个循环

set_time_limit (0);   (i=1; i<美元=10000;美元我+ +){   ,,,Yii:应用程序→美元db→createCommand()→插入(“user", [   ,,,,,,,& # 39;用户名# 39;=祝辞& # 39;高高# 39;。我美元,   ,,,,,,,& # 39;省# 39;=祝辞& # 39;北京市& # 39;   ,,,)→执行();   }

执行后,你知道我们的数据库里有10000条记录了,现在我们开始对比。

<强>对比

为了方便,我们在视图里直接写循环体,如下面代码,你一定可以看懂。

query 美元;=,new  \ yii \ db \查询();   从查询→美元(& # 39;用户# 39;);   foreach(美元查询→所有(),as  $ user) {   ,,,echo  $ user(& # 39;用户名# 39;);   ,,,echo “& lt; br/在“;   }

结果那?

 yii2中批处理和每个有哪些区别

<强>占有内存15.306 mb

好的,现在开始看看批和每个的戏法,到底有没有节省内存。

query 美元;=,new  \ yii \ db \查询();   从查询→美元(& # 39;用户# 39;);   foreach(查询→美元批(),as 美元用户){   ,,,,,,,foreach (users 美元;as  $ user) {   ,,,,,,,echo  $ user(& # 39;用户名# 39;);   ,,,,,,,echo “& lt; br/在“;   ,,,}   }

结果那?

 yii2中批处理和每个有哪些区别

<强>果然,节省了一半的内存。现在仅仅占用了8.077 mb

同样的

query 美元;=,new  \ yii \ db \查询();   从查询→美元(& # 39;用户# 39;);   foreach(查询→美元(),as  $ user) {   ,,,echo  $ user(& # 39;用户名# 39;);   ,,,echo “& lt; br/在“;   }

每个的表现也相当不错

 yii2中批处理和每个有哪些区别

<强>结果

当我们遇到需要一次读取出所有的或是大批量数据的时候,可以考虑使用批处理和每一个,这一点点代码的优化帮你省掉了一半的内存。

感谢各位的阅读!关于“yii2中批处理和每个有哪些区别”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

yii2中批处理和每个有哪些区别