Optimalizátoru MySQL můžete pomoci tím, že veškerou práci s filtrováním přesunete na poddotaz, který přistupuje pouze k indexům (manipulace s indexy je obvykle mnohem rychlejší než manipulace s jinými daty), a načtením zbytku dat v nejvzdálenějším dotazu:
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
Všimněte si, že jsem vynechal ORDER BY posts.post_id DESC
z vnějšího dotazu, protože je obvykle rychlejší seřadit konečný výsledek v kódu než řazení pomocí dotazu MySQL (MySQL často používá filesort za to).
P.S. Jedinečný klíč můžete nahradit follow
tabulka s primárním klíčem.