1、在表中建立索引,優先考慮where、group by使用到的字段
2、盡量避免使用select *,返回無用的字段會降低查詢效率
3、盡量避免使用in 和not in,會導致資料庫引擎放棄索引進行全表掃瞄
如果是連續數值,可以用between代替;如果是子查詢,可以用exists代替
4、盡量避免使用or,會導致資料庫引擎放棄索引進行全表掃瞄
優化方式:可以用union代替or
5、盡量避免在字段開頭模糊查詢或進行null值的判斷,會導致資料庫引擎放棄索引進行全表掃瞄
6、使用分段查詢
在一些使用者選擇頁面中,可能一些使用者選擇的時間範圍過大,造成查詢緩慢。主要的原因是掃瞄行數過多。這個時候可以通過程式,分段進行查詢,迴圈遍歷,將結果合併處理進行展示。 如下圖這個sql語句,掃瞄的行數成百萬級以上的時候就可以使用分段查詢
7、避免在where子句中對字段進行表示式操作 這會造成引擎放棄使用索引
8、盡量使用inner join,避免left join
合理利用索引被驅動表的索引字段作為on的限制字段。利用小表去驅動大表
9、盡量用union all代替union
union和union all的差異主要是前者需要將結果集合並後再進行唯一性過濾操作,這就會涉及到排序,增加大量的cpu運算,加大資源消耗及延遲。當然,union all的前提條件是兩個結果集沒有重複資料。
效能調優有哪些參考指標?
效能調優有哪些參考指標?我們都知道效能調優很重要,他不僅可以讓我們的 吞吐量變高,而且還會節省公司的資源,用最少的資源獲得更大的吞吐量和最小的響應時間。但是調優應該什麼時間去做呢?是在開發過程中嗎?還是在開發之後呢?還有調優的目的是什麼?有哪些參考指標?比如是cpu 記憶體 響應時間還是吞吐量?話不...
超引數調優有哪些方法
為了進行超引數調優,我們一般會採用網格搜尋 隨機搜尋 貝葉斯優化等演算法。在具體介紹演算法之前,需要明確超引數搜尋演算法一般包括哪幾個要素。一是目標函式,即演算法需要最大化 最小化的目標 二是搜尋範圍,一般通過上限和下限來確定 三是演算法的其他引數,如搜尋步長。網格搜尋可能是最簡單 應用最廣泛的超引...
sql效能調優
基本原則 1.避免全表搜尋 2.建立索引 3.盡量避免向客戶端返回大量資料,若資料量大,考慮要求是否合理 4.盡量避免大事務操作,提高系統併發能力 5.盡量避免使用游標,因為效率差 關於where條件 1.盡量避免在where條件使用!或 操作符,否則引擎將放棄使用索引而全表搜尋 2.盡量避免在wh...