我是一名有用的助手,可以为您翻译相关的 IT 技术内容。您需要翻译的内容如下:
我拥有一个使用 InnoDB 存储引擎的 MySQL 数据库,并希望找到最快的方法来检查一行是否存在。
那么,以下哪种方法更快呢:
$sql5 = "SELECT id, value FROM pc_taxes WHERE id = :taxId AND client_id = :clientID LIMIT 1";
$stmt5 = getaccessdata::getInstance()->prepare($sql5);
$stmt5->bindValue(':clientID', $client_id, PDO::PARAM_INT);
$stmt5->bindValue(':taxId', $taxID, PDO::PARAM_INT);
try {
$stmt5->execute();
$req5 = $stmt5->fetchAll(PDO::FETCH_ASSOC);
$countTaxVal = 0;
foreach ($req5 as $r5) {
$countTaxVal++;
}
} catch (Exception $e) {
}
if($countTaxVal>0){
$rowExist=true;
}
或者这个版本在处理非常大的记录时更快:
$sql5 = "SELECT COUNT(*) FROM pc_taxes WHERE id = :taxId AND client_id = :clientID LIMIT 1";
$stmt5 = getaccessdata::getInstance()->prepare($sql5);
$stmt5->bindValue(':clientID', $client_id, PDO::PARAM_INT);
$stmt5->bindValue(':taxId', $taxID, PDO::PARAM_INT);
numRows =0;
try {
$stmt5->execute();
$numRows = $stmt5->fetchColumn();
} catch (Exception $e) {
}
if($numRows >0){
$rowExist=true;
}
感谢您的建议。