目前,我正在应用程序的初始化中打开一个数据库连接。这是一个相当小的应用程序,如果与之相关的话,可以使用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;
}如果我打开连接,然后在获取行之后将其关闭,会不会更好?这看起来似乎有很多连接是打开和关闭的。
发布于 2010-01-13 23:54:54
如果你在(http://en.wikipedia.org/wiki/Connection_pool)上有连接池,那么在你需要的时候获取一个新的连接是可以的。但是,我要说的是,习惯于将任何资源视为“有限的”,如果您打开db句柄,请尽可能长时间地保留它。
发布于 2010-01-13 23:55:36
连接到数据库需要有限的时间。当通过域套接字或命名管道连接时,它可以忽略不计,但如果通过网络连接,或者更糟糕的是,通过开放的Internet,它可能会大得多。至少在请求的生命周期内保持连接。
发布于 2010-01-13 23:57:44
使用mysql_pconnect进行连接池,并在每个操作结束时关闭。该线程不会真正关闭,并且该线程将被重用。这样既安全又高效。
https://stackoverflow.com/questions/2058019
复制相似问题