データが必要であることがわかっている場合は、先に進んでデータをプルし、コードでカウントします。ただし、カウントのみが必要な場合は、実際に行を取得するよりも、データベースからカウントを取得する方がはるかに高速です。また、必要なものだけを引っ張るのが標準的な方法です。
たとえば、テーブル内のすべての行をカウントしている場合、ほとんどのデータベース実装は行を調べる必要はありません。テーブルは、行数を知っています。クエリのwhere
にフィルタがある場合 句を使用すると、インデックスを使用できます。実際の行のデータを確認する必要はなく、インデックスから行をカウントするだけです。
そして、これはすべて、転送されるデータが少ないことを数えているわけではありません。
データベースの速度に関する経験則は、先に進んで自分で試してみることです。一般的なルールは必ずしも良い指標ではありません。たとえば、テーブルが10行で列が数列しかない場合は、データベースへの2回のラウンドトリップがクエリのコストを上回るため、必要なときにすべてを取得する可能性があります。