Memory limit of 10240 KB exceeded for buffered query
本帖最后由 Closer 于 2016-6-2 13:36 编辑$query=$this->db->query($sql);
大概4000条数据,就超过了缓冲限制,在不改变数据库的情况下,有没有什么其他方法 来人啊 修改 php.ini 中的記憶體使用上限 不配置php.ini呢,还是其他方法吗?比如说还有什么函数可以避开缓冲的,例如mysql原生的unbuffered_query,那么在CI 下还有类似的方法吗? 123jixinyu 发表于 2016-6-2 13:51
不配置php.ini呢,还是其他方法吗?比如说还有什么函数可以避开缓冲的,例如mysql原生的unbuffered_query, ...
與 CI 較無關係,單純只是資料量太大了
也許你可以考慮增加搜尋條件,或善用 select
不然就是一次只拿 1000 筆資料,用 foreach 去紀錄拿到的資料
這樣佔的就是 PHP 的記憶體
Closer 发表于 2016-6-2 16:18
與 CI 較無關係,單純只是資料量太大了
也許你可以考慮增加搜尋條件,或善用 select
不然就是一次只拿 100 ...
这种想法我也想过,但是首先需要获取查询结果数量,才能分批查询。怎么直接获取查询结果数量(需要绕过query,因为一遇到query就会溢出) 本帖最后由 Closer 于 2016-6-2 18:13 编辑
123jixinyu 发表于 2016-6-2 18:03
这种想法我也想过,但是首先需要获取查询结果数量,才能分批查询。怎么直接获取查询结果数量(需要绕过que ...
一樣可以用 query 去 count 筆數
你記憶體不夠是一次性的 query 量太大
除了筆數,更重要的是 select 欄位內容量太多
所以應該可以算筆數,再去分組 query
static/image/hrline/line3.png
count 請參考 : CI 手冊 - 查詢構造器類
Closer 发表于 2016-6-2 18:09
一樣可以用 query 去 count 筆數
你記憶體不夠是一次性的 query 量太大
不可以的,只能传入表,不能传入SQL :'(求来人啊
页:
[1]