栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

避免使用INNER JOIN + ORDER BY进行文件排序

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

避免使用INNER JOIN + ORDER BY进行文件排序

您可以通过将所有过滤工作移到仅访问索引的子查询(处理索引通常比处理其他数据快得多),并在最外层的查询中获取其余数据来帮助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
主键替换表中的唯一键。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/420086.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号