常用SQL语句优化技巧总结
1 通過變量的方式來設置參數
好:
stringsql = "select * from people p where p.id = ? ";
壞:
stringsql = "select * from people p where p.id = "+id;
?
數據庫的SQL文解析和執行計劃會保存在緩存中,但是SQL文只要有變化,就得重新解析。
“…where p.id = ”+id的方式在id值發生改變時需要重新解析,這會耗費時間。
2 不要使用select *
使用select *的話會增加解析的時間,另外會把不需要的數據也給查詢出來,數據傳輸也是耗費時間的,
比如text類型的字段通常用來保存一些內容比較繁雜的東西,如果使用select *則會把該字段也查詢出來。
3 謹慎使用模糊查詢
好
stringsql = "select * from people p where p.id like 'parm1%' ";
壞:
stringsql = "select * from people p where p.id like '%parm1%' ";
當模糊匹配以%開頭時,該列索引將失效,若不以%開頭,該列索引有效。
4
用IN的SQL性能總是比較低的,從SQL執行的步驟來分析用IN的SQL與不用IN的SQL有以下區別:?
SQL試圖將其轉換成多個表的連接,如果轉換不成功則先執行IN里面的子查詢,再查詢外層的表記錄,如果轉換成功則直接采用多個表的連接方式查詢;
可見用IN的SQL至少多了一個轉換的過程;一般的SQL都可以轉換成功,但對于含有分組統計等方面的SQL就不能轉換了
?
總結
以上是生活随笔為你收集整理的常用SQL语句优化技巧总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: WPF 3d坐标系和基本三角形
- 下一篇: linux cmake编译源码,linu