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

Er COUNT hurtigere end at trække posterne og tælle i kode?

Hvis du ved, at du har brug for dataene, skal du gå videre og trække dem og tælle dem i kode. Men hvis du kun skal bruge optællingen, er det væsentligt hurtigere at trække optællingen fra databasen, end det er at hente rækker. Det er også standard praksis kun at trække det, du har brug for.

For eksempel, hvis du tæller alle rækkerne i en tabel, behøver de fleste databaseimplementeringer ikke at se på nogen rækker. Tabeller ved, hvor mange rækker de har. Hvis forespørgslen har filtre i where og den kan bruge et indeks, behøver den igen ikke at se på de faktiske rækkers data, bare tæller rækkerne fra indekset.

Og alt dette tæller ikke med, jo færre data, der overføres.

En tommelfingerregel om databasehastigheder er at gå videre og prøve det selv. Generelle regler er ikke altid en god indikator. For eksempel, hvis tabellen var på 10 rækker og kun nogle få kolonner, kunne jeg måske bare trække det hele alligevel, hvis jeg havde brug for det, da 2 rundrejser til databasen ville opveje omkostningerne ved forespørgslen.



  1. Er der en måde at kende dit nuværende brugernavn i mysql?

  2. Sådan løses InnoDB:Kan ikke låse ./ibdata1 mysql fejl?

  3. Tilføjelse af skemanavn til enhed i Spring-data?

  4. SQL Server-fejl 111:"...skal være den første sætning i en forespørgselsbatch"