sql >> Databasteknik >  >> RDS >> Mysql

MySQL enkel valfråga är långsam

Med 110 miljoner poster kan jag inte föreställa mig att det finns många poster med det aktuella spår-ID. Jag skulle ha index som t.ex.

(trackID1, sim )
(trackID2, sim )
(tracksimID, sim)

och gör en PREQUERY via facket och gå med mot det resultatet

select STRAIGHT_JOIN
      TS2.*
   from
      ( select ts.tracksimID
           from tracksim ts
           where ts.trackID1 = 168123
             and ts.sim > 0.5
        UNION
        select ts.trackSimID
           from tracksim ts
           where ts.trackid2 = 168123
             and ts.sim > 0.5 
      ) PreQuery
      JOIN TrackSim TS2
         on PreQuery.TrackSimID = TS2.TrackSimID
   order by
      TS2.SIM DESC
   LIMIT 0, 100


  1. mySQL-fråga om upprepade händelser

  2. Användning av SqlParameter i SQL LIKE-satsen fungerar inte

  3. Infoga en array med Sequel gem i PostgreSQL

  4. MySql-databasstruktur för:Sök baserat på en kolumn och olika värden