索引列中避免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...