首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我应该多久关闭一次数据库连接?

我应该多久关闭一次数据库连接?
EN

Stack Overflow用户
提问于 2010-01-13 23:52:49
回答 5查看 5.5K关注 0票数 6

目前,我正在应用程序的初始化中打开一个数据库连接。这是一个相当小的应用程序,如果与之相关的话,可以使用PHP。

对于我编写的每个数据库函数,我应该连接到数据库,进行调用,然后关闭并重复这个过程吗?

例如,我有下面的函数,它从我的应用程序的初始化中获取$db变量。

代码语言:javascript
运行
复制
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;
}

如果我打开连接,然后在获取行之后将其关闭,会不会更好?这看起来似乎有很多连接是打开和关闭的。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-01-13 23:54:54

如果你在(http://en.wikipedia.org/wiki/Connection_pool)上有连接池,那么在你需要的时候获取一个新的连接是可以的。但是,我要说的是,习惯于将任何资源视为“有限的”,如果您打开db句柄,请尽可能长时间地保留它。

票数 5
EN

Stack Overflow用户

发布于 2010-01-13 23:55:36

连接到数据库需要有限的时间。当通过域套接字或命名管道连接时,它可以忽略不计,但如果通过网络连接,或者更糟糕的是,通过开放的Internet,它可能会大得多。至少在请求的生命周期内保持连接。

票数 3
EN

Stack Overflow用户

发布于 2010-01-13 23:57:44

使用mysql_pconnect进行连接池,并在每个操作结束时关闭。该线程不会真正关闭,并且该线程将被重用。这样既安全又高效。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2058019

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档