我一直在使用PHP和MySQL进行一个小项目的开发。在这方面我有很多关于连接管理的最佳实践的阅读。
我也实现了(遵循一些找到的帖子)一个单例类来管理MySQL连接。
require_once 'config.inc.php';
class DbConn {
private static $instance;
private $dbConn;
private function __construct() {}
/**
*
* @return DbConn
*/
private static function getInstance(){
if (self::$instance == null){
$className = __CLASS__;
self::$instance = new $className;
}
return self::$instance;
}
/**
*
* @return DbConn
*/
private static function initConnection(){
$db = self::getInstance();
$connConf = getConfigData();
$db->dbConn = new mysqli($connConf['db_host'], $connConf['db_user'], $connConf['db_pwd'],$connConf['db_name']);
$db->dbConn->set_charset('utf8');
return $db;
}
/**
* @return mysqli
*/
public static function getDbConn() {
try {
$db = self::initConnection();
return $db->dbConn;
} catch (Exception $ex) {
echo "I was unable to open a connection to the database. " . $ex->getMessage();
return null;
}
}
}
但是...如果我的网站同时有大约10,000个访问者,并且我每次都调用我的单例对象,那么我应该期望会出现性能问题吗?我的意思是,我是否应该使用连接池而不是单例?