Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Cláusula WHERE na junção adicionando 4 segundos ao tempo de execução


A explicação mais provável é que o MySQL está escolhendo um plano de execução diferente quando você adiciona esse predicado.

Você pode comparar a saída EXPLAIN das duas consultas, aquela com o journey_day.day=3 predicado e aquele sem.

Eu arriscaria um palpite de que o MySQL está escolhendo uma ordem de junção diferente, e o MySQL está optando por usar um índice que tem day como uma coluna inicial quando o predicado é incluído. E provavelmente isso está fazendo com que muito mais linhas sejam acessadas e examinadas, ou possivelmente o MySQL está gerando um grande conjunto intermediário antes de filtrar as linhas.