Как отмечалось в комментариях, ваше левое соединение на самом деле не отличается от следующего запроса внутреннего соединения:
SELECT
login,
photo,
username,
user.id,
name,
msg_info
FROM user u
INNER JOIN friends f
ON f.child = u.fb_id
WHERE
f.parent = '1111'
ORDER BY
msg_info DESC;
Мы можем попытаться добавить индекс в таблицу friends
для (parent, child, name, msg_info, ...)
.Я не уверен, какие другие столбцы принадлежат friends
, но основная идея состоит в том, чтобы создать индекс для parent
, ускорить предложение WHERE
и, надеюсь, воспользоваться преимуществом низкой мощности в столбце parent
.Затем мы включаем столбец child
, чтобы ускорить объединение.Мы также включили все остальные столбцы в предложение select, чтобы индекс охватывал другие нужные нам столбцы.
CREATE INDEX idx ON friends (parent, child, name, msg_info, ...);