sql >> Database >  >> RDS >> Mysql

WHERE-component bij join die 4 seconden toevoegt aan de uitvoeringstijd

De meest waarschijnlijke verklaring is dat MySQL een ander uitvoeringsplan kiest wanneer u dat predikaat toevoegt.

Je zou de EXPLAIN-uitvoer van de twee query's kunnen vergelijken, die met de journey_day.day=3 predikaat en die zonder.

Ik durf te wedden dat MySQL een andere join-volgorde kiest en MySQL ervoor kiest om een ​​index te gebruiken die day heeft als een leidende kolom wanneer het predikaat is opgenomen. En waarschijnlijk zorgt dat ervoor dat er veel meer rijen worden geopend en onderzocht, of mogelijk genereert MySQL een grote tussenset voordat het rijen uitfiltert.



  1. Hoe kan ik een primaire sleutel maken als AUTOINCREMENT

  2. Hoe MySQL Query Cache in te schakelen

  3. Is het verlengen van lessen een goede gewoonte?

  4. MySQL-database gevuld vervolgkeuzemenu en PHP-zoekopdracht