Sql語句優化注意

2021-07-11 06:12:28 字數 510 閱讀 8425

1.盡量不要對列名進行函式處理,而是針對後面的值進行處理

例如 where col1=-5的效率比where -col1=5的效率要高。

因為後面的條件對列值進行了計算。這樣的條件下優化器無法使用索引,而是要針對所有值進行計算之後才能再比較

2. 盡量使用和資料列一樣的值進行操作

如果col1是數值型,

那麼例如 where col1=2和where col1='2',則前者效率高,

因為比較字元和數值型的時候,引擎需要把兩者都轉化成雙精度然後進行比較。

這樣col1上的索引就失去作用了。

3.減少函式的使用

例如 where col1>='2009-10-26'and col1<='2009-10-27' 和 where datediff(day, col1, getdate())=0

後者因為用到函式處理,索引col1上的索引又無法使用了

4.盡量不要使用or

一般對於or的條件,

優化器一般會使用全表掃面。

SQL 語句優化 OR 語句優化案例

從上海來到溫州,看了前幾天監控的sql語句和資料變化,發現有一條語句的io次數很大,達到了150萬次io,而兩個表的資料也就不到20萬,為何有如此多的io次數,下面是執行語句 select ws.nodeid,wi.laststepid,wi.curstepid from workflowinfo ...

sql語句優化!

1.不要使用in操作符,這樣資料庫會進行全表掃瞄,推薦方案 在業務密集的sql當中盡量不採用in操作符 a 改為 a 4.is null 或is not null操作 判斷字段是否為空 5.及 操作符 大於或小於操作符 大於或小於操作符一般情況下是不用調整的,因為它有索引就會採用索引查詢,但有的情況...

SQL語句優化

explain sql 反饋sql語句執行資訊 1 優化 select min id as nid,uid pmzongfen updatetime picid gg from qd mouldu qd sell limit 1 select uid pmzongfen updatetime pic...