SQL 語句中優化方法

2021-05-02 05:40:03 字數 475 閱讀 3048

整理一下以前的一些用sql語句的習慣。

先提乙個概念掃瞄引數(sarg),用於限制搜尋的乙個操作,因為它通常是指乙個特定的匹配,乙個值得範圍內得匹配或者兩個以上條件的

and 連線。

1.or 會引起全表掃瞄.

如:name='張三'  and **》5000  符合sarg

而:name='zhangsan '  or **》5000 則不符合sarg

2.非操作符,函式引起的不滿足sarg形勢的語句

非操作符有:not ,!= ,<>,not exists,not in ,not like 等,另外還有函式。

where  **×2>5000 和 where **》5000×2

3.in 的作用相當於or

select * from table1 where tid in (2,3)

和select * from table1 where tid=2 or tid=3

SQL語句中的NOT IN 的優化

sql語句中的in和not in子查詢理解起來很直觀,和實際的業務也很匹配,所有經常被開發人員使用,資料量不大的表還好,如果資料量太大將導致效能問題。原sql select count distinct t.id from task t where t.tenant key tp18squme1 a...

sql查詢語句中

sql查詢語句中select t.status,t.rowid from person t where t.status 2,此處查詢的是status不等於2的記錄,並過濾掉status為null的記錄。注意 此處不管status是integer型別還是long型別,都會過濾掉status為null...

SQL語句中 ( ) 含義

表示外連線。條件關聯時,一般只列出表中滿足連線條件的資料。如果條件的一邊出現 則可列出該表中在條件另一側的資料為空的那些記錄。比如兩個表 員工表和工資表。員工表中有總經理 a b c四條記錄,工資表中只有a b c三人的記錄。如果寫如下語句 select 姓名,工資 from 員工表,工資表 whe...