【问题标题】:reconnect to database or use old connection for better perfomance重新连接到数据库或使用旧连接以获得更好的性能
【发布时间】:2015-01-07 06:43:52
【问题描述】:

我有多个类,并且都连接到同一个数据库 我有我的数据库类和用户、配置文件、消息类? 为了速度和性能,我应该使用扩展还是只使用全局并获取旧连接

class mydb{
function connect(){
}
function query(){
}
}
$mydb = new mydb(connect);




    class user extends mydb{
    function get_usr(){
    parent::connect(); // in here I need to connect again, but I still have my connection $mydb
    $value = parent::query(string);
    return $value;
        }

或者

class user{
function get_usr(){
global $mydb;
$value = $mydb->query(string);
return $value
}

}

现在哪个更好以获得更好的性能。

【问题讨论】:

    标签: php performance class extends


    【解决方案1】:

    企业应用程序的最佳实践是创建一个到数据库的连接池。这些连接始终从 DB 端打开。

    每当应用程序或您的班级需要与 DB 通信时,班级就会从池中获取一个连接(应该是可配置的)并使用它。这节省了连接建立和断开连接的时间。但它的开发人员有责任在使用后将连接释放回连接池。

    这有助于,

    1. 将数据库服务器利用率保持在限制范围内
    2. 提高数据库性能
    3. 限制号查询到数据库的次数
    4. 提高代码的可读性和可重用性。

    从性能的角度来看,不仅数据库连接池很重要,而且你使用的语句类型也很重要。建议在使用连接池时使用prepared statements以提高性能。

    【讨论】:

      【解决方案2】:

      关闭重新连接需要时间(以毫秒为单位)。 最好始终使用一个全局连接(打开)。 这是所有编程语言的最佳实践。

      PS:不要忘记在不需要时关闭连接(例如当用户关闭软件时):)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-12-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-07-10
        • 2014-01-27
        相关资源
        最近更新 更多