sql語句求優化,聽說NOT IN語句不好求優化

時間 2021-06-04 00:49:37

1樓:阿冬

還要注意是在哪一種資料庫管理系統中,有些就不支援minus,不過not exists應該都支援。

2樓:一支紅纓槍

select name from test1 a

where not exists (select * from test2 b where b.name<>'admin' and b.name = a.name)

sql語句not in如何優化最好

3樓:

把*換成具體你想要的欄位,不需要的就別寫了,以免掃描全表檢視

如果**入庫單_主表比較大,那需要給此表建個索引,索引列就是單據型別

4樓:永遠左手

not exists 或者 minus

5樓:溉藥袉阜

使用not exists替換, 一般情況下not exists的效能比not in高出很多

sql 語句 in的優化。

6樓:匿名使用者

假設原來的句子是

select * from t1 where t1.f1 in (select t2.f2 from t2 where t2.f2=***)

和你的很類似

你用子查詢 很慢

我們現在修改為:

select t1.* from t1 ,t2 where t1.f1 = t2.f2 and t2.f2=***x

這裡使用了關聯查詢代替了子查詢大大提高效率。

其次你可以考慮在表t1.f1上加索引,提高查詢速度。

7樓:匿名使用者

嘗試在 in 的這個欄位上建索引

8樓:匿名使用者

這樣試下:

把id放到一張表中,

where id in(select id from 表)

9樓:guoke濤

select * from t1

join t2 on t1.f1=t2.f2

where t2.f2=***

SQL語句優化

select id from table where a 9 and b 7 or a 0 and b 1 and c 0 這個語句就一層沒有太大的優化 sql語句被解析的時候where條件是從後往前篩選的所以你可以根據篩選掉的資料量 把where條件位置變換一下無比將能篩選掉最多不符的資料放到最後...

SQL語句優化,哪位高手來幫幫忙

你的條件,datediff dd,table1.time,2012 12 03 0 and datepart mi,1 time 00 and left 1 time,18 left 2 time,18 你在字段都加了function 注定了只能全表掃瞄。考慮一下不加function怎麼處理吧。建立...

求一句SQL語句,求一句sql語句

巨蟹神運算元 不知道你用的什麼資料庫,oracle資料庫有pivot函式直接操作的,由於目前mysql使用的比較普遍,下面我貼個mysql的寫法吧。select 公司名稱,sum case 品類 when 廚衛 then 金額 else 0 end 廚衛,sum case 品類 when 黑電 th...