gpt4 book ai didi

php - Yii findAll() 导致内存问题

转载 作者:可可西里 更新时间:2023-11-01 00:19:36 27 4
gpt4 key购买 nike

我的记录数只有 15000。php 配置使用的内存为 128 mb。所以我得到了这个错误。

允许的内存大小为 134217728 字节耗尽

有两种方法可以处理这个问题。

  1. DAO http://www.yiiframework.com/doc/guide/1.1/en/database.dao
  2. 增加 PHP 中允许的内存

令我困惑的是,如果我将允许的内存增加到 256,有一天当数据量变成 30 000 时,这个错误会再次出现。

所以我在开发大型应用程序时不应该使用 Yii cactiverecord findAll() 吗?或者我应该随着更多数据的进入不断增加内存大小。

什么是最好的方法?

最佳答案

尝试批量检索数据:

http://www.yiiframework.com/doc-2.0/guide-db-active-record.html#data-in-batches

// fetch 10 customers at a time
foreach (Customer::find()->batch(10) as $customers) {
// $customers is an array of 10 or fewer Customer objects
}

// fetch 10 customers at a time and iterate them one by one
foreach (Customer::find()->each(10) as $customer) {
// $customer is a Customer object
}

// batch query with eager loading
foreach (Customer::find()->with('orders')->each() as $customer) {
// $customer is a Customer object with the 'orders' relation populated
}

关于php - Yii findAll() 导致内存问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34041285/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com