Салют, ребят, подскажите можно ли переписать скрипт лучше, если это я криворук.
Смотрел скорость исполнения сценария через
$start = microtime(true);
//code_here
echo (microtime(true) - $start).' сек.';
И обнаружил, что 75% времени сжирает этот кусок кода
$db = new Database('localhost','devbase','developer','pass');
Пример конструктора и одного из методов отвечающих за удаление
class Database {
private $host;
private $dbName;
private $user;
private $pass;
private $DBH;
function __construct($host,$dbname,$user,$pass) {
$this->host = $host;
$this->dbname = $dbname;
$this->user = $user;
$this->pass = $pass;
$this->DBH = new PDO("mysql:host=$this->host;dbname=$this->dbname",$this->user,$this->pass);
}
function delete($tableName, $conditions, $priority = '') {
$query = $this->DBH->prepare("DELETE $priority FROM $tableName WHERE $conditions");
return $result = $query->execute();
$query = null;
$this->DBH = null;
}
}
Какая сейчас логика:
1. При запросе страницы всегда создается этот объект т.к. всегда идёт запрос к БД
2. Далее в скрипте 1 или несколько раз идёт запрос по типу $db->select('phone, address','clients WHERE id=5567');
3. В общем эта часть, где даже десяток раз подобным образом идёт запрос к БД на вывод данных занимает около 25% времени работы скрипта вместе со всей остальной логикой отрисовки.
На данный момент с приложением работает менее 10 человек, в дальнейшем кол-во одномоментно работающих людей будет несколько сотен.
Специфика работы такая, что иногда требуется открыть с пару десятков страниц, а если это делают несколько человек одномоментно, то приходится ждать 10-15с пока всё откроется и отрисуется.
В общем не комильфо, и было бы круто разом на несколько десятков процентов увеличить скорость работы скрипта.
Время затрачиваемое на создание этого объекта около 0,24 сек., при общем времени на вывод страницы 0,3 сек. В масштабах 1 человека экономия на спичках, в масштабах сотен уже нет.