使用后是否应该释放 PDO 准备好的语句?如果是这样,怎么办?具体来说,我问的是 MySQL - 你怎么能,你应该如何DEALLOCATE PREPARE
通过 PDO 调用。(编辑:澄清一下,这个问题不是指模拟的准备,而是真正的准备。)
另外 - 这会释放结果集(当大时)?
解释:
我看过代码
$stmnt = $db->prepare($sql);
$stmnt->execute($aParams);
$stmnt = null;
这让我想知道这是做什么的,什么时候,如果 funset($stmnt);
会不同?
手册指出
准备好查询后,数据库将分析、编译和优化其执行查询的计划。[...] 通过使用准备好的语句,应用程序避免了重复分析/编译/优化循环。
这往往建议您应该取消分配语句,并且 MySQL 具有此功能。所以,
- 你能打电话吗?怎么
DEALLOCATE PREPARE
打电话 - 你应该这样做吗?
- 任何人都可以确认将语句设置为 null(或取消设置语句)与 mysql_ 和 mysqli_ 的“free_result”相同吗?
- 它是立即发生,还是等待垃圾收集器启动?
为了完整起见,另一个提到“free_result”和“close”函数的SO问题mysqli_()
表明释放语句实际上会增加时间(除非您有大量内存使用并且需要空间)。但是“free_result”不同于将 SQL 服务器从缓存准备好的语句中释放出来。