Все мои сайты построены на стеке php и mysql с использованием PDO.Мне хорошо известны различные способы узнать, сколько строк может вернуть конкретный запрос, но я не уверен, как определить, какой из них более эффективен.
Метод 1 - COUNT () в SQL
$stmt = $db->prepare('SELECT COUNT(ID) FROM table WHERE name = :name');
$stmt->bindParam(':name', $name);
$stmt->execute();
while($row = $stmt->fetch()) {
$counter = $row[0];
}
в этом примере меня интересует ТОЛЬКО подсчет количества результатов по конкретному запросу.Запрос выполняется один раз, а результаты возвращаются в переменной $ counter.
Метод 2 - Foundrows
$stmt = $db->prepare('SELECT ID FROM table WHERE name = :name');
$stmt->bindParam(':name', $name);
$stmt->execute();
$counter= $db->query("SELECT FOUND_ROWS()")->fetchColumn();
Этот метод вызывает дополнительный вызов для моего исходного запроса.
Первый способ представляется наиболее «эффективным» с точки зрения выполнения только одного запроса к базе данных и поиска результата.Метод 2 дает дополнительное преимущество, позволяя мне получить набор результатов, а затем на основе количества этих результатов выбрать игнорировать или продолжить.Метод 2, однако, по-видимому, делает последующие вызовы, которые я предположил бы менее эффективными.
Любой опытный совет по этому поводу?
примечание: в этом примере меня ТОЛЬКО интересует, как эффективнее найти количество строк результатов.Приветствуется дополнительная информация о ваших дополнительных преимуществах, но это не главное.