Frank Hawker

          當(dāng)程序員的大頭鷹

          數(shù)據(jù)庫優(yōu)化技巧:not in及in語句的連接替代方案

          在編寫SQL語句時(shí),如果要實(shí)現(xiàn)一張表有而另一張表沒有的數(shù)據(jù)庫時(shí),通常第一直覺的寫法就是:
          select * from table1 where table1.id not in (select id from table2),這種方法雖然很直觀,但是in及not in的寫法經(jīng)常會(huì)影響其執(zhí)行的效率,對(duì)于大數(shù)據(jù)量時(shí),這個(gè)原因經(jīng)常是性能的瓶頸。在SQL Server中,可以通過左連接的方法來解決,其替代寫法如下:
          select a.* from table1 a left join table2 b on a.id=b.id where b.id is null
          同理,這個(gè)方法也適用于in的情況。

          posted on 2005-05-17 09:04 大頭鷹 閱讀(1187) 評(píng)論(0)  編輯  收藏 所屬分類: 工作札記

          導(dǎo)航

          統(tǒng)計(jì)

          公告

          常用鏈接

          留言簿(3)

          我參與的團(tuán)隊(duì)

          隨筆分類(6)

          隨筆檔案(17)

          文章檔案(1)

          收藏夾(2)

          Friends' Blog

          積分與排名

          最新評(píng)論

          主站蜘蛛池模板: 商丘市| 滨海县| 宜春市| 上蔡县| 长兴县| 桂林市| 安国市| 甘肃省| 澄江县| 阳江市| 自贡市| 平湖市| 页游| 连南| 滨州市| 彰武县| 尼玛县| 内乡县| 玉屏| 湖北省| 彰化县| 阳朔县| 崇信县| 临沭县| 会理县| 连山| 宁波市| 临沂市| 甘洛县| 呼图壁县| 柏乡县| 建宁县| 信丰县| 平塘县| 黔江区| 凤台县| 榆树市| 河曲县| 通州区| 班戈县| 社旗县|