mysqlデータベースとinnodbを持つので、行が存在するかどうかを確認する最速の方法を探したいと思う。このバージョンより速く、非常に大きな記録に関するSQLパフォーマンス - SELECT COUNT対LIMIT 1のSELECT ID
$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;
}
感謝。
私はすでに検索しましたが、LIMIT 1 ... –
の制限付きカウントは実際には意味がありません... –
1つの行が見つかるとカウントが停止すると思っていましたか?したがって、すべてのレコードを数え、1つだけを出力しますか? –