sql >> Base de Datos >  >> RDS >> Mysql

Cláusula WHERE al unirse agregando 4 segundos al tiempo de ejecución

La explicación más probable es que MySQL está eligiendo un plan de ejecución diferente cuando agrega ese predicado.

Puede comparar el resultado de EXPLAIN de las dos consultas, la que tiene el journey_day.day=3 predicado y el otro sin.

Me atrevería a suponer que MySQL está eligiendo un orden de unión diferente, y MySQL está optando por usar un índice que tiene day como columna inicial cuando se incluye el predicado. Y probablemente eso esté causando que se acceda y examine muchas más filas, o posiblemente MySQL esté generando un gran conjunto intermedio antes de filtrar las filas.