我有多个类,并且所有连接到同一个数据库我都有我的数据库类和用户,配置文件,消息类? 我应该使用扩展还是仅仅使用全局并获得旧的连接,以获得速度和性能
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
}
}
现在哪个更好,以获得更好的表现。
答案 0 :(得分:2)
企业应用程序的最佳实践是创建与数据库的连接池。这些连接始终从DB端打开。
每当应用程序或您的类需要与DB通信时,类就会从池中获取一个连接(应该是可配置的)并使用它。这节省了连接建立和断开的时间。但是它的开发人员有责任在使用回连接池后释放连接。
这有助于,
从性能的角度来看,不仅数据库连接池很重要,而且您使用的语句类型也很重要。建议在使用连接池时使用预准备语句来提高性能。
答案 1 :(得分:1)
关闭重新连接需要时间(以毫秒为单位)。 最好始终使用一个全局连接(已打开)。 这是所有编程语言的最佳实践。
PS:不要忘记关闭连接(例如用户关闭软件时):)