您可以通过将所有过滤工作移到仅访问索引的子查询(处理索引通常比处理其他数据快得多),并在最外层的查询中获取其余数据来帮助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_titleFROM (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_idDESC从外部查询中省略了,因为在代码中对最终结果进行排序通常比使用MySQL查询进行排序要快(MySQL通常使用 filesort 进行排序)。
PS您可以用
follow主键替换表中的唯一键。



