日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

sql 一个字段在另外一个表没出现_都9012年啦,不懂得这些SQL语句优化,你是要吃大亏的...

發布時間:2024/9/19 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 sql 一个字段在另外一个表没出现_都9012年啦,不懂得这些SQL语句优化,你是要吃大亏的... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

引言

數據庫的性能優化技術一直是個老生常談的問題,不管是MySQL、SQL Server還是Oracle。

對于我們IT開發人員和運維人員,掌握常用的SQL 優化語句是非常必要的,它可以使你的工作變得“事半功倍”,會為你帶來很多便利和節約很多時間。

接下來,我將帶領你們認識以下的常用優化語句。

1. SQL語句要一致,避免出現大小寫

如果讓你看上面兩條SQL語句,你是不是覺得它們是一樣的?

但是對于數據庫軟件在搜索時,可就不一樣了。他會認為是兩句SQL語句,因此要進行兩次解析,生成兩段執行代碼。

因此,我們程序員在開發時要注意保證相同的SQL語句在其他地方也有要完全一致,多個空格、逗號都不行。

2. 正確使用like模糊查詢,避免全表掃描

對于上面的模糊查詢,如like 后面的“%chicken%”,因為 chicken 前面存在了%,那么程序就得對整個表進行掃描,耗費時間,資源。所以,在非必要的情況下,請不要在關鍵字前面加 %。

3. where 語句中請不要出現對null的判斷,這樣會導致引擎放棄索引進而進行全表掃描,辦法是用0來替換null。

4. 限制性使用 count(*)

以上語句中,使用count(*),就會對全表進行查詢。多次一舉,還降低數據庫性能。

5. where 多條件查詢時,將數量少的放在前面

上圖中,第一條SQL語句 性別為1 的很多,先選擇出sex =1的,然后再對剩下的數據根據name 字段查詢,這樣的效率很低。

而第二條SQL 語句 先對那么字段進行篩選,剩下的數據就變得很少了,再根據sex=1,這樣效率很高,數據庫執行也很快。

6. 不要一味地追求 Select *

第一句SQL語句, select * 會增加數據查詢表的時間,因為它需要user 這個表中所有的數據都給你查詢出來,另外查詢出來的數據傳遞給你也是要耗費時間的。

而第二句SQL語句,則定位很精準。不必要把表中不需要的數據查詢出來,效率高,執行速度快。

7. 合理使用索引,不要出現以下操作

  • 索引字段上面不要出現 where !=或者是 where >,< 等這樣的操作符;
  • 索引字段上面不要出現類型轉換的問題,(比如字段要求的是BOOL類型,而你傳入的參數卻是String類型);

上述操作會導致索引失效,進而會使數據庫查詢變成了 全表查詢。

8. 對于SQL語句要學會拆分法

當一個SQL語句過于冗余、雜亂時,嵌套了多級查詢,其實這樣也會降低SQL的性能問題。對于此問題,應該懂得拆分SQL語句,用多個SQL語句完成那個復雜的嵌套的SQL語句,程序速度會變快。

9. 多使用 not exist 而非 not in

對于第二個SQL語句,使用了 not in 會對內外表都進行了全表查詢,沒有用到了索引; 而對于 not exist 利用到了索引,索引效率會高。

10、OR 不要想當然的就使用

對于上述兩條SQL語句,表明上看兩者的執行效率應該差不多。其實天壤之別,or執行的是全表查詢,而 union利用的是索引查詢,后者效率要高的多。

結論

從上述總結的SQL語句優化方法可以看得出來:

  • 查詢的時候要盡量使用數據庫引擎索引;
  • 還有就是寫的查詢語句條件盡量簡單明了,不要冗余復雜
  • 理解各個關鍵詞的作用,并且不要使用錯誤的SQL語句,反而會是累贅。

總結

以上是生活随笔為你收集整理的sql 一个字段在另外一个表没出现_都9012年啦,不懂得这些SQL语句优化,你是要吃大亏的...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。