关于MySQL的LEFT JOIN 的优化

YP159020_hao 2017-12-02 10:01:50
对下面这样的格式怎么可以优化的更快呢?
SELECT tab_a.bid ,tab_a.cid,tab_b.id,tab_c.id
FROM tab_a JOIN tab_b ON tab_a.bid=tab_b.id LEFT JOIN tab_c ON tab_a.cid=tab_c.id
我弄了好久好像都是没有什么效果,请教下大侠们有什么好的建议。
...全文
310 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
YP159020_hao 2017-12-06
  • 打赏
  • 举报
回复
引用 7 楼 zjcxc 的回复:
看执行计划,是没有索引 在 JOIN 和排序的字段上建索引
看了你们说的,我就上网看了只执行计划里面的说明,后来就加上了索引。感觉加上之后就看到了效果。虽然查询9k多条要0.5秒左右,不过,满足当前的使用了。谢谢
zjcxc 2017-12-06
  • 打赏
  • 举报
回复
看执行计划,是没有索引 在 JOIN 和排序的字段上建索引
YP159020_hao 2017-12-06
  • 打赏
  • 举报
回复
引用 5 楼 lzd_83 的回复:
贴出执行计划看是否用到了索引



像这样的。这里才9k多条就要4秒了。想不明白
Rotel-刘志东 2017-12-04
  • 打赏
  • 举报
回复
贴出执行计划看是否用到了索引
zjcxc 2017-12-04
  • 打赏
  • 举报
回复
explain 盾下执行计划
YP159020_hao 2017-12-03
  • 打赏
  • 举报
回复
引用 1 楼 qq_37170555 的回复:

SELECT tab_a.bid ,tab_a.cid,tab_b.id,tab_c.id 
 FROM  tab_a JOIN  tab_b ON tab_a.bid=tab_b.id LEFT JOIN tab_c  ON tab_a.cid=tab_c.id 
可以考虑在on的字段上建立索引,或者把前两个表的结果插入临时表,然后再和第三个表去连接
如果在on后面添加索引能写个例子给我吗? 对了,临时表是怎么滴…………
YP159020_hao 2017-12-03
  • 打赏
  • 举报
回复
如果在on后面添加索引能写个例子给我吗? 对了,临时表是怎么滴…………
听雨停了 2017-12-02
  • 打赏
  • 举报
回复

SELECT tab_a.bid ,tab_a.cid,tab_b.id,tab_c.id 
 FROM  tab_a JOIN  tab_b ON tab_a.bid=tab_b.id LEFT JOIN tab_c  ON tab_a.cid=tab_c.id 
可以考虑在on的字段上建立索引,或者把前两个表的结果插入临时表,然后再和第三个表去连接

56,940

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧