110 मिलियन रिकॉर्ड के साथ, मैं कल्पना नहीं कर सकता कि ट्रैक आईडी के साथ कई प्रविष्टियां हैं। मेरे पास इंडेक्स होंगे जैसे कि
(trackID1, sim )
(trackID2, sim )
(tracksimID, sim)
और संघ के माध्यम से एक PREQUERY करें और उस परिणाम के विरुद्ध शामिल हों
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