關於SQL優化的一點建議

2022-04-03 02:42:42 字數 693 閱讀 9474

前段時間一直在做關於效能優化相關的工作,結合自己的實際工作經驗,只針對sql層面提一些優化的規範和建議。

1、單條sql長度不宜超過100行;

2、sql子查詢不宜巢狀3層:

子查詢巢狀過多,又可能會導致解析過於複雜,產生錯誤的執行計畫;

3、sql表關聯需要考慮連線和限制條件的索引;

4、同一模組避免出現大量相似之處:

這種sql寫法一般比較可疑,一般可以優化,比如用with子句等;

5、盡量避免對列進行運算:

對列進行運算會導致索引失效,也會影響查詢效率;

6、盡量批量提交;

7、盡量用資料量少的表作為驅動表,在表關聯中,盡量使用小表關聯大表。

1、函式索引一般要盡量避免

2、位圖索引在更新時是個噩夢,應謹慎使用

3、單錶無索引時需要謹慎,但是索參數量也應控制

4、建聯合索引時需要結合單列查詢考慮,並考慮索引列的前後(詳情參考前面的文章oracle索引之btree索引)

1、在索引列上使用not和<>

索引只能告訴我們什麼存在於表中,不能告訴我們什麼不存在表中。

2、在索引列上使用計算

包括『||』,』+』但不限於這些字串連線函式和數學函式,都會停用索引。

3、相同的索引列進行比較,會啟用全表掃瞄。

4、當檢索資料量超過30%表中的記錄數,使用索引將沒有顯著的效率提高。

SQL優化的一點點建議

我們知道,不管是哪種資料庫,或者是哪種資料庫引擎,在對一條sql語句進行執行的過程中都會做很多相關的優化,對於查詢語句,最重要的優化方式就是使用索引。table 如果查詢使用了別名,那麼這裡顯示的是別名,如果不涉及對資料表的操作,那麼這顯示為null,如果顯示為尖括號括起來的就表示這個是臨時表,後邊...

關於SQL優化的一點心得

因為專案中的幾個sql比較執行速度比較慢,所以最近一直在優化這幾個sql,在優化的過程中,還是挺有意思,因為每進 行一點改進,可能對執行效率都有一點的改善。在這個方面,也總結了一些小小的經驗,這些經驗都是建立在orcle系統之上 的 1 在做聯合查詢時,注意對錶中的資料進行預估,然後決定查詢時表的先...

關於sql的一點心得

積累了一定的後端開發經驗,談一下寫sql的一點心得 1.select from 一定要要慎用,最好是只返回你需要的列,否則效率會很低 2.游標要慎用,之前從因為記憶體不足的原因,使用游標從資料庫中讀資料,游標實際上就是分批放入記憶體,實際上減小了記憶體的占用,但效率會變低 3.索引要建立在經常做查詢...