in與not in的效能問題

這是藍色小舖討論in與not in效能的問題:

在in與not in,最終會轉換成where條件,記得。

有兩個關係:
一、Select出來的資料多少。
二、 Where帶的條件。

在1000筆資料裡,你是要使用in(包含)還是not in(排除)才會快?
in (10筆) / not in (90筆)?
in (90筆) / in (10筆)?

在100萬筆資料裡,你是要使用in(包含)還是not in(排除)才會快?
in (10萬筆) / not in (90萬筆)?
in (90萬筆) / not in (10萬筆)?

其 實兩題一模一樣,只是把資料量變大時,就看得出差異。
原則很簡單,選的那一個。

以第二題為例,
in (10萬筆) → 代表10萬條where條件
not in (90萬筆) → 代表90萬條where條件

不用我說應該就知道,「效能 差異」馬上分別出來,in與not in一體兩面,能下in就能下not in,找出的那一個才是重點。

2 則留言:

  1. 您好:

    我對於
    "in 跟not in一體兩面,能下in就能下not in"不太了解。
    例如:
    Select no From x
    Where no not in (Select no From y)
    要如何用"in"的下法呢?
    _____________________________________________

    正在學習SQL語法的小弟 留

    回覆刪除
  2. http://kkbruce.blogspot.com/2010/05/in-not-in.html

    希望這樣能給你滿意的回答。

    回覆刪除

感謝您的留言,如果我的文章你喜歡或對你有幫助,按個「讚」或「分享」它,我會很高興的。