Mysql
 sql >> Database >  >> RDS >> Mysql

Laravel eloquent withCount() dovrebbe essere più lento del semplice with()

La differenza è che stai chiedendo a mysql di contare ogni riga nella tua istruzione invece di scaricare semplicemente. Il punto di withCount non è che sia più veloce, è meglio sulla memoria se tutto ciò di cui hai bisogno è un conteggio.

Ad esempio, ho una relazione con migliaia di elementi ricchi di dati. Se uso semplicemente un with e poi provo a contare i risultati, php esaurirà la memoria che avrò mai la possibilità di fare il conteggio. Se utilizzo withCount, viene restituito un solo elemento che mi dice quanti elementi ci sono, quindi non ci sono tasse sulla memoria php, ma tutto il lavoro viene svolto sul server sql.