当前位置: 首页 > 面试题库 >

PHP mySQL-何时是断开数据库连接的最佳时间?

赫连捷
2023-03-14
问题内容

我使用 惰性连接
来连接到数据库对象中的数据库。从根本上讲,这意味着直到处理完第一个查询后,它才会调用mysql_connect(),并且此后它随后将跳过重新连接。

现在,我的数据库类中有一个方法,该方法disconnectFromDB()几乎可以调用mysql_close()和设置$_connected = FALSE(因此该query()方法将知道再次连接到数据库)。应该在每个查询之后(作为私有函数)还是通过对象从外部调用此方法……因为我在想类似的东西(代码仅是示例)

$students = $db->query('SELECT id FROM students');

$teachers = $db->query('SELECT id FROM teachers');

现在,如果它在每次查询后都关闭,这会减慢很多速度,而不是我将这一行添加到末尾

$db->disconnectFromDB();

还是我应该只在页面的最后一行添加该行?

两者都有哪些优点/缺点?在您的情况下最有效的方法是什么?忘记关闭mySQL连接真的有什么不对劲,除了会损失一点性能之外?

感谢您抽出宝贵的时间来回答。

谢谢!


问题答案:

据我所知,除非您使用持久连接,否则您的MySQL连接将在页面执行结束时关闭。

因此,您调用断开连接将不会添加任何内容,并且由于您执行的是惰性连接,如果您或其他开发人员犯错并在错误的时间断开连接,则可能导致创建第二个连接。

鉴于此,我只允许我的连接自动关闭。您的页面应该能够快速执行,因此在短时间内保持连接不会造成任何问题。



 类似资料:
  • 本章介绍如何从OrientDB命令行断开与特定数据库的连接。 它关闭了当前打开的数据库。 以下语句是Disconnect命令的基本语法。 注 - 只有在连接到特定数据库后才能使用此命令,并且只会关闭当前运行的数据库。 示例 在这个例子中,我们将使用在前一章中创建的名为的数据库。 我们将从数据库断开连接。 可以使用以下命令断开数据库连接。 如果它成功断开连接,将获得以下输出 -

  • 我有一个几乎功能齐全的实时数据库存在系统,如这里所述,但我遇到了一些问题。似乎即使在不久前断开连接后,人们仍然保持在线状态。我不知道为什么,但我暂时向未经身份验证的请求开放了我的安全规则,但无济于事。这可能是由于此处描述的错误。 如果问题是梯子,那么避免这个问题的正确JavaScript实现是什么?每 60 分钟重新创建一次“断开连接”侦听器是一个好的解决方案吗?作为参考,我使用的代码如下所示:

  • 我们有一个使用Spring和Hibernate用Java8编写的应用程序。 我们在prod和dev环境中都使用MySQL数据库。该数据库每天使用一次,流程从晚上11点开始。有时甚至没有人使用prod数据库,所以在8个小时的不活动之后,MySQL数据库正在断开连接。当流程开始时,我们会得到一个错误: 然后,当有人在最初的失败后手动启动该过程时,一切都正常了。 似乎第一次连接(自动)尝试以某种方式触发

  • 问题内容: 我正在使用ADO.Net连接到某些Sql Server和Oracle数据库,并且我想同时运行一些查询。 我将SqlClient名称空间中的类用于Sql Server,将ODP.Net用于Oracle。对于Sql Server,我在连接字符串中添加了MARS选项,并在SqlCommand上调用了异步API。ODP.Net不提供异步API,因此我必须为并发的Oracle命令分配单独的线程。

  • 有什么办法处理我的情况吗?

  • 问题内容: 我有一个用Go编写的Web服务,目前我将这个Global包导入到任何地方,其中包含与MongoDB的连接(通过MGO),但是我不得不说这对我来说非常讨厌。在Go中维护与数据源的连接的最佳实践是什么?我来自PHP世界,因此来自Global:S 问题答案: 导入一个将初始化对象导出为包级别变量或通过访问器/初始化程序导出的包没有错。后者也许对古典“ OOP主义者”更具吸引力。