PDO: стоимость вызова prepare () в цикле?
Я пишу класс базы данных для моего сайта с такими функциями, какfetchOne
, fetchAll
которые подготавливают, выполняют (+ bind) и извлекают запрос все в одном, поэтому мне не нужно каждый раз вызывать эти функции по отдельности. Некоторые задания cron на моем сайте выполняют тысячи или даже миллионы запросов внутри цикла.
Приведет ли использование моего класса к повторной подготовке оператора каждую итерацию цикла или PDO «запомнит», что запрос уже подготовлен? Значительно ли это повлияет на производительность, и если да, то может ли быть решение просто предоставить функцию, которая передает экземпляр базы данных и делает что-то вроде$db->getDb()->prepare($query);
вне петли? Или есть лучшее решение?
Пример функции:
public function fetchOne($query, $params = array(), $fetchMode = PDO::FETCH_ASSOC)
{
$stmt = self::prepareExecute($query, $params);
$result = $stmt->fetch($fetchMode);
if (count($result) < 1)
$result = FALSE;
$stmt->closeCursor();
unset($stmt);
return($result);
}