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

WHERE-klausul om join tilføjer 4 sekunder til eksekveringstiden

Den mest sandsynlige forklaring er, at MySQL vælger en anden eksekveringsplan, når du tilføjer det prædikat.

Du kan sammenligne EXPLAIN-outputtet af de to forespørgsler, den med journey_day.day=3 prædikat og det uden.

Jeg vil vove et gæt på, at MySQL vælger en anden join-rækkefølge, og MySQL vælger at bruge et indeks, der har day som en ledende kolonne, når prædikatet indgår. Og det forårsager sandsynligvis mange flere rækker, der skal tilgås og undersøges, eller muligvis genererer MySQL et stort mellemsæt, før det filtrerer rækker fra.



  1. Kan ikke finde FULLTEXT-indeks, der matcher kolonnelisten (indekser er indstillet)

  2. Login-godkendelse til en ekstern mysql-database

  3. mysqlclient installationsfejl i AWS Elastic Beanstalk

  4. Sådan konverteres fra ét datoformat til et andet i SQL Server ved hjælp af CONVERT()