美文网首页
SQL 优化

SQL 优化

作者: 西安法律咨询服务平台与程序员 | 来源:发表于2019-04-13 17:04 被阅读0次

    首先从展示一段未优化前的代码:

    select s.name, s.age, c.number from 
        (
            select name, age, c_id as num from tableA
            union all 
            select name, age, c_id as num from tableB
        ) s jion tableC c on s.c_id = c.id
    where s.name = :name and s.age = :age
    

    上面的SQL 首先关联表tableA 和tableB,然后join tableC,最后使用where 语句进行条件的限制。该SQL存在的问题是将tableA 与talbeB union all 之后再使用where 语句进行限制,这样增加了SQL 的查询时间。

    优化后:

    select s.name, s.age, c.number from 
    (
        select name, age, c_id as num from tableA where name = :name and age = :age
        union all 
        select name, age, c_id as num from tableB where name = :name and age = :age
    ) s jion tableC c on s.c_id = c.id
    

    将涉及子表的查询条件移动至子表中,可以查看优化前后的执行计划,便明确优化的效果。编写代码时,精力第一时间往往集中在实现业务功能,可以忽略了实现方式的优劣,所以需要在实现业务功能后,需要重新审视一次自己的代码,是否有更加好的实现方式。

    相关文章

      网友评论

          本文标题:SQL 优化

          本文链接:https://www.haomeiwen.com/subject/wyrrwqtx.html