php - PHP mysqli_query 没有在 mysqli_free_result 上释放内存
问题描述
我有一个很长的脚本,它应该一个接一个地运行许多查询。问题是只要脚本没有结束,即使在 unset 或 mysqli_free_result 上,内存使用量也不会减少。
我附上了一些给出问题的示例代码。表 TMP_DUMP 包含 500K 行。
public function memTest() {
echo "start";
$con = mysqli_connect("127.0.0.1","root","####","####");
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$products = mysqli_query($con, "SELECT * FROM TMP_DUMP");
mysqli_free_result($products);
mysqli_close($con);
echo "done";
sleep(500);
}
所以我保持 htop 打开并在开始打印后查看 RAM 使用情况。内存在某个点后不断增加并稳定下来,但在打印完成后它应该会减少,但事实并非如此。如果我等待脚本结束,那么内存会突然减少它增加的数量。
解决方案
推荐阅读
- java - 用方括号括住方法引用是什么意思?
- java - JDK11,安全策略不会传播到 ForkJoinPool 工作线程
- visual-studio-code - VSCODE。如何通过单击打开包含变量或 html 标记的文件?
- ios - 在 performDropWith 委托回调中访问源表视图
- c# - 更新(更新回退)具有子实体的实体列表的正确方法?
- php - 使用php将数据infile加载到oracle表中
- python - 通过使用 Python 计算行范围内的元素来创建新列
- python - 在循环中将一个列表的每个元素与第二个列表的四个元素相乘以获得新列表的函数
- drools - Drools 7.x 中“KnowledgeAgentConfiguration”属性的替代品是什么?
- python - 在 django 中从 rest API 运行 Python 脚本