应该多久关闭一次数据库连接?
目前,我在我的应用初始化中打开数据库连接。这是一个相当小的应用程序,如果这是相关的PHP。应该多久关闭一次数据库连接?
我应该连接到数据库,进行调用,然后关闭和重复这个过程,我写的每个数据库函数?
例如,我有下面的函数,它从应用程序的初始化中获取$ db变量。
function get_all_sections()
{
global $db;
$sql = 'select * from sections';
if (!$db->executeSQL($sql, $result))
{
throw new Exception($db->getDatabaseError());
exit();
}
$sections = array();
for ($i = 0; $i < $db->numberOfRows($result); $i++)
{
$sections[] = new Section($db->fetchArray($result, MYSQLI_ASSOC));
}
return $sections;
}
如果我打开连接然后在提取行后关闭它会更好吗?这似乎是很多打开和关闭的连接。
如果您有连接池(http://en.wikipedia.org/wiki/Connection_pool),则可以在需要时抓取新连接。但是,我会说习惯于将任何资源视为“有限”,并且如果打开数据库句柄,请尽可能长时间保持它。
我一直听到另一种方式的建议:*尽可能快地关闭数据库连接*。 – cregox 2010-05-14 21:42:32
连接到数据库需要一定的时间。当通过域套接字或命名管道连接时,它可以忽略不计,但如果通过网络连接,或者更糟的是,开放的Internet,它可能会更大。至少在请求的生命中保持连接。
由于PHP MySQL连接相当轻量级,因此您可能需要时打开和关闭连接。其他数据库连接也是如此,例如连接到连接相当繁重的SQL Server。
然而,在所有情况下,在可维护性/逻辑/依赖性方面做任何最有意义的事情。然后,如果您发现自己感觉可以减速,那么您可以优化那些需要提速的区域。
如有疑问,请遵循黄金法则:不要过早优化。
您使用连接池吗? – 2010-01-13 15:54:09
目前不在。 – mculp 2010-01-13 16:09:34