sql >> Database >  >> RDS >> Mysql

Is COUNT sneller dan de records ophalen en in code tellen?

Als je weet dat je de gegevens nodig hebt, ga je gang en trek je eraan en tel het in code. Als u echter alleen de telling nodig hebt, is het aanzienlijk sneller om de telling uit de database te halen dan om rijen daadwerkelijk op te halen. Ook is het standaard om alleen te trekken wat je nodig hebt.

Als u bijvoorbeeld alle rijen in een tabel telt, hoeven de meeste database-implementaties niet naar rijen te kijken. Tabellen weten hoeveel rijen ze hebben. Als de zoekopdracht filters heeft in de where clausule en het kan een index gebruiken, het hoeft opnieuw niet naar de gegevens van de daadwerkelijke rijen te kijken, maar telt alleen de rijen uit de index.

En dit alles telt niet de minder overgedragen gegevens mee.

Een vuistregel over databasesnelheden is:ga je gang en probeer het zelf. Algemene regels zijn niet altijd een goede indicator. Als de tabel bijvoorbeeld 10 rijen en slechts een paar kolommen zou zijn, zou ik de hele zaak toch kunnen trekken als ik het nodig had, aangezien 2 retourvluchten naar de database de kosten van de zoekopdracht te boven zouden gaan.



  1. Kan geen verbinding maken met Postgres via PHP, maar kan verbinding maken vanaf de opdrachtregel en PgAdmin op een andere machine

  2. Filteren op een alias in mysql

  3. kan geen extensie maken zonder de rol van supergebruiker

  4. PostgreSQL-fout bij het maken van een extensie