欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

sql語句優(yōu)化之用EXISTS替代IN、用NOT EXISTS替代NOT IN的語句

 更新時間:2007年08月23日 17:43:10   作者:  
在許多基于基礎(chǔ)表的查詢中,為了滿足一個條件,往往需要對另一個表進行聯(lián)接。在這種情況下, 使用EXISTS(或NOT EXISTS)通常將提高查詢的效率。在子查詢中,NOT IN子句將執(zhí)行一個內(nèi)部的排序和合并。無論在哪種情況下,NOT IN都是最低效的 (因為它對子查詢中的表執(zhí)行了一個全表遍歷)。為了避免使用NOT IN ,我們可以把它改寫成外連接(Outer Joins)或NOT EXISTS。



我要查詢 Sendorder表中的冗余數(shù)據(jù)(沒有和reg_person或worksite相連的數(shù)據(jù))

sql="select Sendorder.id,Sendorder.reads,Sendorder.addtime from Sendorder where Sendorder.person_id not in(select user_id from reg_person ) or Sendorder.worksite_id not in(select id from worksite) order by Sendorder.addtime desc"
程序執(zhí)行時間:40109.38毫秒

sql="select Sendorder.id,Sendorder.reads,Sendorder.addtime from Sendorder where not EXISTS (SELECT id FROM reg_person where reg_person.user_id=Sendorder.person_id) or not EXISTS (SELECT id FROM worksite where worksite.id=Sendorder.worksite_id) order by Sendorder.addtime desc"
程序執(zhí)行時間:8531.25毫秒

很明顯使用not EXISTS效率高多了 

相關(guān)文章

最新評論