重新连接到数据库或使用旧连接以获得更好的性能
reconnect to database or use old connection for better perfomance
我有多个 class,并且都连接到同一个数据库 我有我的数据库 class 和用户、配置文件、消息 class?
为了速度和性能,我应该使用 extends 还是只使用 global 并获得旧连接
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
}
}
现在哪个更好以获得更好的性能。
关闭重新连接需要时间(以毫秒为单位)。
最好始终使用一个全局连接(已打开)。
这是所有编程语言的最佳实践。
PS: 不要忘记在不需要时关闭连接(比如当用户关闭软件时):)
企业应用程序的最佳做法是创建数据库连接池。这些连接总是从数据库端打开。
每当应用程序或您的 class 需要与数据库通信时,class 从池中获取一个连接(应该是可配置的)并使用它。这节省了连接建立和断开的时间。但它的开发人员有责任在使用后将连接释放回连接池。
这有助于,
- 将数据库服务器的利用率控制在限制范围内
- 提高数据库的性能
- 限制号命中数据库的查询
- 提高代码的可读性和可重用性。
从性能的角度来看,不仅数据库连接池很重要,而且你使用的语句类型也很重要。建议在使用连接池的同时使用prepared statements以提高性能。
我有多个 class,并且都连接到同一个数据库 我有我的数据库 class 和用户、配置文件、消息 class? 为了速度和性能,我应该使用 extends 还是只使用 global 并获得旧连接
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
}
}
现在哪个更好以获得更好的性能。
关闭重新连接需要时间(以毫秒为单位)。 最好始终使用一个全局连接(已打开)。 这是所有编程语言的最佳实践。
PS: 不要忘记在不需要时关闭连接(比如当用户关闭软件时):)
企业应用程序的最佳做法是创建数据库连接池。这些连接总是从数据库端打开。
每当应用程序或您的 class 需要与数据库通信时,class 从池中获取一个连接(应该是可配置的)并使用它。这节省了连接建立和断开的时间。但它的开发人员有责任在使用后将连接释放回连接池。
这有助于,
- 将数据库服务器的利用率控制在限制范围内
- 提高数据库的性能
- 限制号命中数据库的查询
- 提高代码的可读性和可重用性。
从性能的角度来看,不仅数据库连接池很重要,而且你使用的语句类型也很重要。建议在使用连接池的同时使用prepared statements以提高性能。