sql >> Databasteknik >  >> RDS >> Mysql

Hur man förbättrar ordning efter prestanda med joins i mysql

Försök att bli av med distinct . Det är en prestationsdödare. Jag är inte säker på varför din första fråga fungerar snabbt; kanske MySQL är smart nog att optimera bort det.

Jag skulle försöka:

SELECT tt.id
FROM tracked_twitter tt
WHERE EXISTS (SELECT 1
              FROM twitter_content tc INNER JOIN  
                   tracker_twitter_content ttc
                   ON  tc.id =  ttc.twitter_content_id
              WHERE  ttc.tracker_id =  88 AND
                     tt.id =  tc.tracked_twitter_id
             )
ORDER BY tt.followers_count DESC ;

För den här versionen vill du ha index på:tracked_twitter(followers_count, id) , twitter_content(tracked_twitter_id, id) ochtracker_twitter_content(twitter_content_id, tracker_id) .



  1. MySQL/Hibernate - Hur felsöker jag en MySQL-poolad anslutning som fortsätter att tappa?

  2. SQL hur gruppera efter räkenskapskvartal och år med ett datumfält

  3. Vad är PLSQL-poster i Oracle

  4. Hur parametriserar jag en nollsträng med DBNull.Value tydligt och snabbt