Sie können dem MySQL-Optimierer helfen, indem Sie die gesamte Filterarbeit in eine Unterabfrage verschieben, die nur auf Indizes zugreift (das Manipulieren von Indizes ist normalerweise viel schneller als das Manipulieren anderer Daten), und den Rest der Daten in der äußersten Abfrage abrufen:
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
Beachten Sie, dass ich ORDER BY posts.post_id DESC
weglasse von der äußeren Abfrage, da es normalerweise schneller ist, das Endergebnis in Ihrem Code zu sortieren, als mit einer MySQL-Abfrage zu sortieren (MySQL verwendet häufig filesort dafür).
P.S. Sie können den eindeutigen Schlüssel im follow
ersetzen Tabelle mit einem Primärschlüssel.