サンプルアプリ。従業員情報があり、payrollやposなどのさまざまなアプリケーションからアクセスされます。1つのデータベースに従業員データがあり、給与データとPOSがそれぞれ別々のデータベースにあります。
私は以下のようなデータベース接続クラスを持っているので、データベースへの接続を取得したいときはいつでも実行します$conn = Database::getInstance(db1)
。
うまく機能しますが、基本的には非常に遅いです。アプリの実行が非常に遅くなります。なぜそれがそうなのか、それともこれを行うためのより良いが代替のアイデアであるのかについてのヒントはありますか?
どんな助けでも大歓迎です
<?php
class Database {
private $db;
static $db_type;
static $_instance;
private function __construct($db){
switch($db) {
case "db1":
try{
$this->db = new PDO("mysql:host=" . DB_HOST . ";dbname=" . DB_NAME, DB_USER, DB_PASSWORD);
}
catch(PDOException $e){
print "Error!: " . $e->getMessage() . "<br />";
die();
}
break;
case "db2":
try{
$this->db = new PDO("mysql:host=" . DB_HOST_2 . ";dbname=" . DB_NAME_2, DB_USER_2, DB_PASSWORD_2);
}
catch(PDOException $e){
print "Error!: " . $e->getMessage() . "<br />";
die();
}
break;
}
self::$db_type = $db;
}
private function __clone(){}
static function getInstance($db_type){
if(!(self::$_instance) || $db != self::$db_type){
self::$_instance = new self($db_type);
}
return self::$_instance;
}
}
?>