Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL-Optimierung basierend auf Erklären

Versuchen Sie es mit einer inneren Verknüpfung anstelle einer Unterabfrage. Es ist standardmäßig so, dass die Abfrage ohne Daten ausgeführt wird. Möglicherweise hilft es Ihnen jedoch, der Abfrage zu folgen.

WÄHLEN Sie 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

VONstreetofwalls .User AS User
LEFT JOIN my_database .attempts AS Attempt EIN (Attempt .user_id =User .id UND Attempt .test_id !=5)LEFT JOIN my_database .reports AS Resume EIN (Resume .user_id =User .id )

, my_database .User AS Benutzer1

LEFT JOIN my_database .tags_users AS TagUser on (User1 .id =TagUser .user_id )

LEFT JOIN my_database .tags AS-Tag EIN (TagUser .tag_id =Tag .id )

WHEREUser .id =User1 .id UND Attempt .test_id =8UND Attempt .score> 60
UND Resume .has_file =1UND Tag .id ='8' UND Tag .id !='3'GRUPPE NACH User .id ORDER BY Attempt .score DESC;