3

私のスクリプトでは、行数を数えてユーザーに表示するためだけに、約 15 の SQL クエリがあります。

最も効率的な方法は何ですか?

私は使用する必要があります:

$stmt=$cxn->prepare("SELECT id FROM items WHERE seller=?");
$stmt->execute(array($username));
echo $stmt->rowCount();

またはこれ:

$stmt=$cxn->prepare("SELECT count(*) as count FROM items WHERE seller=?");
$stmt->execute(array($username));   
while($row=$stmt->fetch(PDO::FETCH_ASSOC))
    echo $row['count'];

前もって感謝します。

4

3 に答える 3

2

簡単な答えは、Count(*) の方が高速になるということです。

ただし、それはデータを使用しないことを前提としています。データを選択し、カウントが必要な場合は、最初の方法を使用してください。

("SELECT id FROM items WHERE seller=?");

テーブルにインデックスがある場合、それはほぼ瞬時に返されます。

于 2012-05-20T15:00:03.477 に答える
1

rowCountコマンドは、SELECTクエリだけでなく、UPDATE、INSERTなどにも使用できます。これはその利点です。

ただし、PDOのドキュメントによると:

すべてのデータベースで保証されているわけではなく、ポータブルアプリケーションに依存するべきではありません。

したがって、あなたの場合は、パフォーマンスを気にせずにカウントを使用することをお勧めしますが、少し速くなります。

于 2012-05-20T15:01:16.673 に答える
0

MySQL の行数を使用する方が高速です。PHP とデータベース間で必要な帯域幅が少なくなります。

于 2012-05-20T14:59:48.513 に答える