ホームページ >データベース >mysql チュートリアル >PDO::rowCount() と COUNT(*) のインデックスありとインデックスなしのどちらがパフォーマンスが高いでしょうか?
PDO::rowCount と COUNT(*) のパフォーマンスの比較
質問:
行数チェックを伴う SELECT クエリでは、PDO::rowCount() を使用するのと、クエリに COUNT(*) を含めるのとでは、どちらのパフォーマンスが向上しますか?さらに、ID フィールドにインデックスが設定されている場合、どのオプションがより効率的ですか?
答え:
最初の質問: Count(*) と PDO ::rowCount()
内部的には、MySQL の COUNT() はカウント結果のみを保存するために最小限のメモリを割り当てますが、PHP は PDO::rowCount() で結果セット全体を処理し、すべての結果セットにメモリを割り当てます。取得した結果。したがって、MySQL では COUNT() の方が高速です。
2 番目の質問: インデックス
COUNT() を使用した COUNT(id) と COUNT(*) は次のとおりです。 id フィールドにインデックスが設定されている場合でも、COUNT(id) よりも優先されます。これは、COUNT() は値を迅速にカウントするように最適化されており、すべての行をフェッチする必要性が減りますが、COUNT(id) は各行にアクセスする必要があり、パフォーマンスが低下する可能性があるためです。
以上がPDO::rowCount() と COUNT(*) のインデックスありとインデックスなしのどちらがパフォーマンスが高いでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。