<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          專業(yè)點,那叫“條件謂詞下推”

          共 780字,需瀏覽 2分鐘

           ·

          2021-04-27 12:16

          sql優(yōu)化中join中的優(yōu)化手段:謂詞下推。 


          謂詞下推,就是在將過濾條件下推到離數(shù)據(jù)源更近的地方,最好就是在table_scan時就能過濾掉不需要的數(shù)據(jù),在關系代數(shù)中謂詞是可以左右上下移動的,由于join查詢的特殊性,在優(yōu)化join condition中的謂詞時,對應不同的join 內型,有不同的策略

          inner join

          inner join的結果集是左表和有表都要滿足條件,所以inner join condtion中的條件都是可以下推的,比如下面的查詢

          select e.* from emp e inner join dept d on e.deptno = d.deptno and emp.deptno=5;

          優(yōu)化后的查詢

          select e. from (select * from emp where emp.deptno =5) e  inner join  (select * from deptno where deptno =5 ) on on e.deptno = d.deptno;

          left join 由于左表是保留表,所有join condition 中的左表條件會失效,右表的條件可以下推,對right join. 則相反;

          對于outter join 由于左表和右表都是保留表,則都不能下推;

          對于anti join,由于查詢的結果集是不滿足join 條件的集合,如果謂詞下推,查詢結果集將會為null, 當然有一種思路可以在謂詞時下推時將條件取非,獲取正確結果;


          瀏覽 44
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  乱伦小说亚洲图片 | 百度一下| 欧美黑人大 | 欧美成人黄色免费网站 | 人人操美女 |