Puoi aiutare l'ottimizzatore MySQL spostando tutto il lavoro di filtraggio in una sottoquery che accede solo agli indici (la manipolazione degli indici è generalmente molto più veloce della manipolazione di altri dati) e recuperando il resto dei dati nella query più esterna:
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
Nota che ometto ORDER BY posts.post_id DESC
dalla query esterna, perché di solito è più veloce ordinare il risultato finale nel codice piuttosto che ordinare utilizzando una query MySQL (MySQL usa spesso filesort per quello).
PS Puoi sostituire la chiave univoca in follow
tabella con una chiave primaria.