小编Mar*_* J.的帖子

如何在zend中清理/释放数据库查询内存?

在执行这个简单的代码(对于MySQL数据库)之后,我为每个循环迭代减少了1kB的内存,所以在第1000次迭代后我使用了大约1MB的内存.

现在,如果我必须循环一个长时间运行的脚本(大约1 000 000次迭代),我将很快失去记忆

$_db = Zend_Db_Table::getDefaultAdapter();

$start_memory = memory_get_usage();

for ($i=0; $i<1000; $i++) {
    $update_query = "UPDATE table SET field='value'";
    $_db->query($update_query);
}

echo 'memory used: '.(memory_get_usage()-$start_memory);
Run Code Online (Sandbox Code Playgroud)

有没有办法释放数据库查询使用的内存?

我试图将更新查询放在一个函数中,所以在离开函数之后,应该自动释放这个函数使用的资源:

function update($_db) {
  $sql = "UPDATE table SET field='value'";
  $_db->query($sql);
}
...
for ($i=0; $i<1000; $i++) {
    update($_db);
}
Run Code Online (Sandbox Code Playgroud)

但他们不是!

我对像'尝试一次更新多行'这样的建议不感兴趣;)

php database memory-management zend-framework

2
推荐指数
1
解决办法
1503
查看次数

标签 统计

database ×1

memory-management ×1

php ×1

zend-framework ×1