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

Ist COUNT schneller als die Datensätze abzurufen und im Code zu zählen?

Wenn Sie wissen, dass Sie die Daten benötigen, ziehen Sie sie und zählen Sie sie im Code. Wenn Sie jedoch nur die Anzahl benötigen, ist es wesentlich schneller, die Anzahl aus der Datenbank abzurufen, als Zeilen tatsächlich abzurufen. Außerdem ist es üblich, nur das zu ziehen, was Sie brauchen.

Wenn Sie beispielsweise alle Zeilen in einer Tabelle zählen, müssen die meisten Datenbankimplementierungen keine Zeilen betrachten. Tabellen wissen, wie viele Zeilen sie haben. Wenn die Abfrage Filter im where hat -Klausel und es kann einen Index verwenden, muss es sich wiederum nicht die tatsächlichen Zeilendaten ansehen, sondern zählt nur die Zeilen aus dem Index.

Und all dies zählt nicht, je weniger Daten übertragen werden.

Eine Faustregel für Datenbankgeschwindigkeiten lautet:Probieren Sie es selbst aus. Allgemeine Regeln sind nicht immer ein guter Indikator. Wenn die Tabelle zum Beispiel 10 Zeilen und nur ein paar Spalten hat, könnte ich das Ganze trotzdem ziehen, wenn ich es nicht brauche, da 2 Roundtrips zur Datenbank die Kosten der Abfrage aufwiegen würden.