SQL語句優化小節

2021-10-08 02:30:44 字數 727 閱讀 8669

索引列中避免null

在sql語句中任何包含null的值的列都不會被包含在索引中,也就是所我們在設計表的時候最好將帶有索引的列設定預設值,這樣避免出現null導致索引失效。

in ,or ,between

可以使用in時候別使用or,可以使用between時別使用in

!=,not

select * from user where salary<3000 or > salary > 3000.

和select * from user where salay!=3000

使用前者,第一種允許使用索引,第二種不允許

避免在索引上計算

低效: select … from user where sal * 12 > 25000;

高效: select … from user where sal > 25000/12;

盡量避免使用select *

這個是個老生常談的問題,還是為了節省資源和網路開銷,每次查詢時最好只查詢需要的字段即可

如果確定只會返回乙個結果使用limit 1

好處在於一是可以避免業務出錯,其二還能提高查詢效率,查到後直接返回結果

數字比字元型查詢更快

在同等情況下,如果能夠確定欄位內儲存均為數字,最好是將其設為數字型別,提高查詢效率。

like模糊查詢不可前置百分比

我們在使用like進行模糊查詢時,不可將百分號放在最前面,會導致無法使用索引,而進行全文搜尋。

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...