Tim Starling wrote:
Whenever you do a join with a limit, MySQL gets the
query plan wrong.
It scans the small table and filesorts the large table. You have to
use FORCE INDEX on the small table to suppress the scan. We've seen
this many times. It's very difficult to detect during code review and
frequently crashes the site.
Does anyone know a DBMS where joining with limits actually works?
Because I'm sick of this crap.
Would it help to do it in a way similar to what you have to do in DBMSes
without limit:
select a.* from (
select * from recentchanges
left join tag_summary on ts_rc_id=rc_id
order by rc_timestamp desc
) a limit 50
or is MySQL's parser too smart for its own good?