场景:商家生成 1W 条以上的优惠券,随机生成的优惠券写入数据库,也就是 1W 多条。 按平常的写法我们肯定是这样写的:
for ($i=0; $i <10000 ; $i++) {
SQL 语句
执行写入数据库操作
}
但是这样效率太低,如果是 1W 条数据库就需要操作 1W 次数据库,这个成本是很大的,一般情况下,这样就是报错的,说需要执行的时间太长了。 解决办法就是,把上面代码改成如下:
for ($i=0; $i <10000 ; $i++) {
SQL 语句
}
执行写入数据库操作
这样只需要执行一次写入数据库操作就行了,效率立刻体现出来了。 CakePHP 自带有一个方法是 saveAll 就是用来做这件事的,使用方法如下:
for ($i=0; $i <10000 ; $i++) {
$data[] = array('字段名' => '值'),array('字段名' => '值');
}
$this->ModelData->saveAll($data);
参考链接:PHP 技巧:写入大量数据到 mysql
- 原文作者: forecho
- 原文链接: https://blog.forecho.com/php-yi-ci-xie-ru-shang-wan-tiao-shu-ju-dao-shu-ju-ku.html
- 版权声明:本作品采用 署名-非商业性使用 4.0 国际 (CC BY-NC 4.0)进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。