面試之SQL優化怎么回答?


想必小伙伴們面試度時候,都被問過SQL優化吧?然鵝實際上工作中,這個點大部分人接觸的很少,加上面試本來就有點緊張,導致很多人,只能想到一點點,甚至一臉懵圈,那么面試度時候遇到這個問題應該怎么回答呢?

下面我就來說說我的看法:

  (1)最重要的是盡量避免全表掃描”

  (2)適當的創建索引,考慮在 where 及 order by 涉及的列上建立索引(把所建的索引所用列名,用在where語句中,並盡量在條件的最右邊,索引相關知識:https://www.jianshu.com/p/f588c41f1cb5

  (3)盡量避免在 where 子句中對字段進行 null 值判斷、使用!=或<>操作符、使用 or 來連接條件、對字段進行函數操作等

  (4)in 和 not in 也要慎用,否則可能會導致全表掃描

  (5)很多時候用 exists 代替 in 是一個好的選擇

  (6)盡量使用數字型字段,若只含數值信息的字段盡量不要設計為字符型,這會降低查詢和連接的性能,並會增加存儲開銷。

  (7)盡可能的使用 varchar 代替 char ,因為首先變長字段存儲空間小,可以節省存儲空間,其次對於查詢來說,在一個相對較小的字段內搜索效率顯然要高些。  

  (8)把條件最小的寫在最右邊,如果id=?寫在最右邊

  (9)盡量少寫子查詢,用join語句代替,少寫in,like,or


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM