sql >> Database teknologi >  >> RDS >> Mysql

Sådan forbedres rækkefølge efter ydeevne med joins i mysql

Prøv at slippe af med distinct . Det er en præstationsdræber. Jeg er ikke sikker på, hvorfor din første forespørgsel virker hurtigt; måske er MySQL smart nok til at optimere det væk.

Jeg ville prøve:

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 ;

For denne version vil du have indekser på:tracked_twitter(followers_count, id) , twitter_content(tracked_twitter_id, id) , ogtracker_twitter_content(twitter_content_id, tracker_id) .



  1. Er det muligt at flytte en post fra en tabel til en anden ved hjælp af en enkelt SQL-sætning?

  2. Dynamisk SQL-udførelse i SQL Server

  3. SQL-opdatering fra tabel med tilfældige navne

  4. PDO::fetchAll vs. PDO::fetch in a loop