Mysql
 sql >> Datenbank >  >> RDS >> Mysql

SELECT COUNT() vs mysql_num_rows();

Verwenden Sie COUNT , verarbeitet der Server die Anfrage intern anders.

Beim Ausführen von COUNT , weist der Server nur Speicher zu, um das Ergebnis der Zählung zu speichern.

Bei Verwendung von mysql_num_rows , verarbeitet der Server die gesamte Ergebnismenge, weist Speicher für all diese Ergebnisse zu und versetzt den Server in den Abrufmodus, der viele verschiedene Details wie das Sperren umfasst.

Stellen Sie es sich wie die folgenden Pseudo-Szenarien vor:

SELECT COUNT(*)

Hey Bob, wie viele Leute sind im Klassenzimmer?

mysql_num_rows

Hey Bob, schick alle Leute aus dem Klassenzimmer zu mir, ... ich zähle sie, um die Anzahl der Leute selbst zu bekommen

Zusammenfassend, wenn Sie mysql_num_rows verwenden Sie übertragen alle Datensätze an den Client, und der Client muss die Anzahl selbst berechnen.