@Hellek
Люблю говорить и слышать суть

Как можно ускорить скрипт подключения к БД?

Салют, ребят, подскажите можно ли переписать скрипт лучше, если это я криворук.
Смотрел скорость исполнения сценария через
$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 человека экономия на спичках, в масштабах сотен уже нет.
  • Вопрос задан
  • 510 просмотров
Решения вопроса 1
PavelK
@PavelK
Попробуйте сменить localhost на 127.0.0.1 т.к. подключение сначала пытается резолвить имя.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@RoverWhite
Время создания соединения с сервером БД на локальной машине 240мс это не нормально.
Что-то не так с сервером возможно?
Ответ написан
@asd111
На какой ОС проверяете ? Какая БД ? Какая версия php ?
Если на windows, то все норм - в windows подключение php к БД происходит медленно. На linux будет быстрее.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы