• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:どちらが速いのか?mysql_num_rows)

方法Aと方法B、どちらが速くてメモリ効率が優れているか?

このQ&Aのポイント
  • 方法Aと方法Bのクエリの速度とメモリ効率を比較する質問です。方法Aでは、クエリを一度実行し、結果セットの行数を取得します。そして、結果セットのデータをループして表示します。一方、方法Bでは、クエリを2回実行し、まず結果セットの行数を取得し、次にデータをループして表示します。
  • 速度とメモリ効率の面で比較すると、方法Aの方が優れています。方法Aはクエリの実行が一度で済むため、方法Bと比べて効率的です。また、結果セットの行数を取得するために必要なメモリ量も方法Aの方が少なくて済みます。
  • PHPとMySQLの環境で、方法Aと方法Bのクエリの実行速度とメモリ効率を比較したい場合は、両者を試してみて、実際の結果を比較検討する必要があります。方法Aが一度のクエリ実行で済むため、大量のデータを処理する場合やリソースの制約がある場合には、方法Aが適している場合があります。

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

技術的な裏付けはわかりませんが、そんなには変わる要素はなさそうですね カウント数をとるなら普通はCOUNT()なのでB案の方がなにかとよろしいかと思います 根拠として通常全件表示は冗長なのでおこなわないケースが多く たいていページングで範囲を限定して表示するからです。 カウントは全件、表示箇所は限定(たとえばLIMITするとか)となると 件数確認と表示は別で処理した方が効率がよくなります

fabu
質問者

お礼

ありがとうございます。 やはりcount()の方ですか。パフォーマンス計測も調べてやってみたいと思います。

fabu
質問者

補足

方法Cも加え、処理の時間を計測をしましたが、私の場合だとcount()が一番早くなりました。 ■方法C SELECT SQL_CALC_FOUND_ROWS

関連するQ&A