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

MySQL:underforespørgsler ELLER fagforeninger?

Det ser ud til, at du leder efter summen af ​​postantal for en række forskellige forespørgsler i dine tabeller.

Det første alternativ ... tæl hver forespørgsels resultater, og tilføj dem derefter ... vil være hurtigere. Hvorfor? Det har mindre arbejde at gøre. Dit andet alternativ skal skændes med et sæt comid værdier, og tæl dem derefter. Det tager tid.

Brug COUNT(*) hvis du kan. Det er billigere. Brug UNION ALL i stedet for UNION når du kan; UNION fjerner dubletter og UNION ALL gør ikke. Det tager tid at fjerne dubletter.

Ydeevnen af ​​begge alternativer afhænger af gode valg for indekser for hver underforespørgsel.




  1. MySQL:Automatisk forøgelse af midlertidig kolonne i select-sætning

  2. Kan ikke se rækker indsat af en kørende transaktion, når isolationsniveauet er READ_UNCOMMITTED

  3. Avanceret Mysql-forespørgsel for at få masterpost, hvis to betingelser matcher på forskellige rækker af underordnede poster

  4. Laravel query Builder - genbrug forespørgsel med ændret where-sætning