我养成了将变量使用率保持在最低限度的习惯.所以我想知道以下是否有任何好处:
$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应该是更有效,因为$query
是unset
当我重新分配它应该释放任何相关的记忆.但是有一个方法(MySQLi_Result::free()
)可以释放相关的内存 - 这是一回事吗?
如果我不调用::free()
释放与结果相关的任何内存,但是unset
通过重新分配变量,我做同样的事情吗?我不知道如何记录这类事情 - 有没有人有一些想法?
该手册似乎暗示您仍应使用free()
释放内存.我相信其原因在于free()
释放MySQL中的内存,而不是PHP.由于PHP无法为MySQL进行垃圾收集,因此需要调用free()
.