开发者社区 问答 正文

多表联查更新sql语句如何优化

_2019_05_08_5_05_09

key1:

SELECT a.sid from (select sid from tb_stu where 1=1 ORDER BY id DESC) a INNER join tb_award b on a.sid+0=b.stu_sid+0

key2:

SELECT sid  FROM tb_stu A where exists (select stu_sid as sid from tb_award B where B.stu_sid+0 = A.sid+0 group by B.id) ORDER BY A.id;

这是现在的方案一和方案二,但是实在太慢了。
希望大佬可以提个优化建议。

展开
收起
立青王 2019-05-08 17:23:10 4811 分享 版权
3 条回答
写回答
取消 提交回答
  • sql的子查询嵌套很耗时,不走索引的,建议通过join的方式进行查询

    2020-02-28 16:48:52
    赞同 展开评论
  • sql的子查询嵌套很耗时,不走索引的,建议通过join的方式进行查询

    2020-02-28 16:49:30
    赞同 展开评论
  • 对于要求全面的结果时,我们需要使用连接操作(LEFT JOIN / RIGHT JOIN / FULL JOIN);
    不要以为使用MySQL的一些连接操作对查询有多么大的改善,核心是索引;
    对被驱动表的join字段添加索引;

    2019-07-17 23:34:59
    赞同 展开评论
问答分类:
问答地址: