簡單明瞭的SQL優化小技巧

2021-10-08 19:43:34 字數 1069 閱讀 6628

總結一下就是為了提高效率,優化sql 是一種方式,索引的合理建立和使用也是一種方式。

1,為了提高效率一般會使用索引,但是不好的sql 語句會使得資料庫放棄索引 而進行全表掃瞄 大大的降低效率 (比如下面?這些)所以sql 語句要注意。

(1)一般使用 「like」 時,第乙個位置一定不能加上 % ,如like '%張%『。否則會使得資料庫放棄索引 而進行全表掃瞄,可以使用 like 『張%』

(2)in 和not in 一定要謹慎使用 ,可以使用between and 代替它。

如 :select id,name,hp from hero where hp in (1,2,3);

代替:select id,name,hp from hero where hp between 1 and 3;

(3)or 使用時要謹慎。在or 後面跟的多個欄位中 如果有的字段沒有索引時 就不會走索引 。

(4)進行null值判斷時避免使用 is null 、is not null ,可以使用預設值去代替。

如:select id,name,hp from hero where hp is null;

代替:select id,name,hp from hero where hp =0;

(5)避免使用 > < != 操作符

(6)在where 中 「=」的左邊 不要使用函式,算數/表示式運算。否則無法正常使用索引。

(7)避免資料型別的隱式轉換,因為隱式轉換會導致索引失效。

如:select name,phone from customer where id = '111';

以上會導致放棄索引 而進行全域性掃面 從降低效率的一部分sql 語句 ,暫時就想到這些,如果有大佬知道其它的可以寫在評價中喲。

2,上面是針對於索引 而進行的sql 優化。下面也是sql優化

(1)使用select 進行查詢時 不要使用 select * from t。要使用具體的列 去代替 *

。。。。。。。

暫時就這些了,如果有什麼錯誤,希望能不吝賜教。

簡單明瞭的SQL建立語句

1.建立資料庫sql語句 use master goif exists select from sysdatabases where name commonpermission begin select 該資料庫已存在 drop database commonpermission 如果該資料庫已經存...

SQL簡單明瞭的Case函式說明

case函式有點像if else 和 switch 語句的結合一樣的流程控制函式 它end結束後會有返回值 1,第一種是簡單函式 等值比較型 case 欄位名 when 字段值1 then 結果1 when 字段值2 then 結果2 else 結果3 end比如下面判斷乙個人的性別,用 的值0表示...

最簡單明瞭的yield from解釋

def one print one start res yield from two print function get res res return one res deftwo print two start res yield from three print two1 return res...