Najbardziej prawdopodobnym wyjaśnieniem jest to, że MySQL wybiera inny plan wykonania po dodaniu tego predykatu.
Możesz porównać wynik EXPLAIN z dwóch zapytań, z tym z journey_day.day=3
orzeczenie i ten bez.
Zaryzykowałbym przypuszczenie, że MySQL wybiera inną kolejność łączenia, a MySQL decyduje się na użycie indeksu, który ma day
jako wiodąca kolumna, gdy uwzględniony jest predykat. I prawdopodobnie powoduje to dostęp do znacznie większej liczby wierszy i ich sprawdzanie, lub być może MySQL generuje duży zestaw pośredni, zanim odfiltruje wiersze.