Select Count(*) from SomeTableName
好奇心のために、データベースのすべての行を次のようにトラバースすることを知りたいSelect * from SomeTableName
ですか?
または、行が追加または削除されるたびに更新される、データベースのメタデータで利用可能な他のカウント フィールドはありますか? そして、そのフィールドは前のクエリによってアクセスされます。
また、両方のクエリのどちらがより高速で、どれくらい速いかを知りたいですか?
Select Count(*) from SomeTableName
好奇心のために、データベースのすべての行を次のようにトラバースすることを知りたいSelect * from SomeTableName
ですか?
または、行が追加または削除されるたびに更新される、データベースのメタデータで利用可能な他のカウント フィールドはありますか? そして、そのフィールドは前のクエリによってアクセスされます。
また、両方のクエリのどちらがより高速で、どれくらい速いかを知りたいですか?
SELECT Count(*)
FROM SomeTableName
常にすべての行をカウントします。ただし ( とは異なりSELECT *
)、すべての列を読み取る必要はなく、使用可能な最も狭い (フィルター処理されていない) インデックスを使用できます。
MySQL (MyISAM エンジン) とは異なり、メタデータから値を取得しません。
行数の値はメタデータで使用でき、そこから取得できますsys.partitions
が、これはCOUNT
クエリには使用されず、常に正確であるとは限りません。