Можете да помогнете на оптимизатора на MySQL, като преместите цялата работа по филтриране към подзаявка, която има достъп само до индекси (манипулирането на индекси обикновено е много по-бързо от манипулирането на други данни) и извличане на останалата част от данните в най-външната заявка:
SELECT posts.post_id,
posts.post_b_id,
posts.post_title,
posts.post_cont,
posts.thumb,
posts.post_user,
boards.board_title_l,
boards.board_title
FROM (SELECT post_id
FROM posts
JOIN follow
ON posts.post_b_id = follow.board_id
WHERE follow.user_id = 1
ORDER BY post_id DESC
LIMIT 10) sq
JOIN posts
ON posts.post_id = sq.post_id
JOIN boards
ON boards.board_id = posts.post_b_id
Имайте предвид, че пропускам ORDER BY posts.post_id DESC
от външната заявка, защото обикновено е по-бързо да сортирате крайния резултат във вашия код, вместо да сортирате с MySQL заявка (MySQL често използва filesort за това).
P.S. Можете да замените уникалния ключ в follow
таблица с първичен ключ.