Как выполнить LEFT JOIN с условием?
Если запрос отрабатывает за приемлемое для вас время, то ничего не меняйте.
Если бы нужно было определить прочел ли пользователь сообщение, был бы смысл делать выборку именно как у вас, но указав в полях возврата mr.`user_id`, который был бы либо айди, либо нулл. Если же у вас МНОГО людей в чате - тогда правильнее будет сделать так:SELECT m.`id`, m.`message`, mr.`message_id` status
FROM `messages` m
LEFT JOIN (
      select `message_id` 
      from `messages_read`
      where `user_id` = 111
) mr 
ON mr.`message_id` = m.`id` 
WHERE m.`chat_id` = 12