php - 使用 MySQLi - 更适合关闭查询

标签 php mysql memory mysqli

我习惯于将变量的使用保持在最低限度。所以我想知道以下是否有任何优势:

$query = $mysqli->query('SELECT * FROM `people` ORDER BY `name` ASC LIMIT 0,30');

// Example 1
$query = $query->fetch_assoc();

// Example 2
$query_r = $query->fetch_assoc();
$query->free();

现在,如果我是对的,示例 1 应该更有效,因为当我重新分配它时 $queryunset,这应该释放与其关联的任何内存。然而,有一种方法 (MySQLi_Result::free()) 可以释放相关内存 - 这是同一回事吗?

如果我不调用 ::free() 来释放与结果关联的任何内存,而是通过重新分配变量来取消设置,我在做同样的事情吗?我不知道如何记录这类事情 - 有人有什么想法吗?

最佳答案

manual似乎建议您仍应使用 free() 来释放内存。我相信原因是 free() 正在释放 MySQL 中的内存,而不是在 PHP 中。由于 PHP 无法对 MySQL 进行垃圾回收,因此您需要调用 free()

关于php - 使用 MySQLi - 更适合关闭查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26515/

相关文章:

php - 如何从 n 开始选择 mySQL 中的每第 n 行

mysql - Mysql防止在查找表中重复插入

mysql - 使用用户名和密码凭据创建数据库 codeigniter

javascript - php 文件中的弹出警报脚本

javascript - PHP页面不更新MySQL数据

PHP/SQL - 获取另一列的总和

c++ - rapidjson c++ 在对象中释放数组

c - 在这个程序中数组是如何存储在内存中的?

c++ - 使用 C/C++ 乐观读取和锁定 STM(软件事务内存)

javascript - 在 Javascript 中从 JSON 数据创建饼图