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

Optimización de Mysql basada en explicación

intente la combinación interna en lugar de la subconsulta; de forma predeterminada, guía la consulta sin ejecutar datos, pero puede que seguir la consulta lo ayude.

SELECCIONE User .id , User .username , User .password , User .role , User .created , User .modified , User .email , User .other_user_id , User .first_name , User .last_name , User .place_id , Resume .id , Resume .user_id , Resume .other_resume_id , Resume .other_user_id , Resume .file_extension , Resume .created , Resume .modified , Resume .is_deleted , Resume .has_file , Resume .is_stamped , Resume .is_active

DESDEstreetofwalls .users COMO User
IZQUIERDA ÚNETE my_database .attempts COMO Attempt ON (Attempt .user_id =User .id Y Attempt .test_id !=5) IZQUIERDA ÚNETE my_database .reports AS Resume ON (Resume .user_id =User .id )

, my_database .users COMO Usuario1

IZQUIERDA ÚNETE my_database .tags_users AS TagUser en (User1 .id =TagUser .user_id )

IZQUIERDA ÚNETE my_database .tags COMO etiqueta activada (TagUser .tag_id =Tag .id )

DONDEUser .id =User1 .id Y Attempt .test_id =8Y Attempt .score> 60
Y Resume .has_file =1Y Tag .id ='8' Y Tag .id !='3'GRUPO POR User .id ORDENAR POR Attempt .score DESC;