I'ld recommend rewriting that query from a left join
to join
, and moving and reci.user_id = ?
into the where clause. Sometimes MySQL picks wonky stuff if your join condition isn't 100% what it expects.
How many conversations does that user have? Because the explain is hitting at ~175k or so.