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

Laravel eloquent withCount() soll langsamer sein als nur with()

Der Unterschied besteht darin, dass Sie mysql auffordern, jede Zeile in Ihrer Anweisung zu zählen, anstatt nur einen Speicherauszug zu erstellen. Der Punkt von withCount ist nicht, dass es schneller ist, es ist besser für den Speicher, wenn Sie nur zählen müssen.

Zum Beispiel habe ich eine Beziehung zu Tausenden von datenreichen Elementen. Wenn ich nur ein with verwende und dann versuche, die Ergebnisse zu zählen, wird PHP der Speicher ausgehen, den ich jemals habe, um die Zählung durchzuführen. Wenn ich withCount verwende, wird nur ein Element zurückgegeben, das mir sagt, wie viele Elemente es gibt, also gibt es keine Steuer auf den PHP-Speicher, aber die ganze Arbeit wird auf dem SQL-Server erledigt.