Я пишу класс базы данных для моего веб-сайта с такими функциями, как 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);
}