提高系统性能——对SQL语句优化的思考
? ? ? 軟件在研發的過程中自始至終都在留意著系統的可擴展性。但與此同一時候也在關注著系統的性能,SQL語句作為系統性能的一環不容忽視。從今天開始結合開發的經驗,談一下我對SQL語句優化的理解和認知:
? ? ?1、在聯合查詢語句中做到小表驅動大表:
? ? ?聯合查詢是經常使用到的一種查詢方式,左連接、右連接、內連接等等時不時地被應用在查詢語句中,然而在這一過程中假設能判明各表的數據量,那就再好只是了,在這樣的情況下from后面應該緊跟數據量小的表。為什么?呵呵呵,比方a表有1000條數據,b表有20條數據。使用左連接進行聯合查詢假設a表驅動b表,那么b表就要被訪問1000次,但假設b表驅動a表,a僅僅要被訪問20次,其性能可想而知。
? ? ?2、不要使用in+子查詢
? ? ?請注意,我這里并沒有說不要使用in查詢,假如in中的值是給定的。而不是通過select從其他表中查詢取得,那么使用inkeyword也無可厚非,可是假如in中的數據是通過select從其他表中查詢取得的,強烈建議將其改為聯合查詢的方式,詳細方法請參看博客《SQL語句優化——in,not in,exists,not exists, left join...on》.
? ? ?3、注意wherekeyword后面查詢條件的順序,將尚未給定值的查詢條件放到最后面。將給定的非模糊查詢條件放到最前面;
? ? ? ? 本博客持續更新中。敬請期待。
總結
以上是生活随笔為你收集整理的提高系统性能——对SQL语句优化的思考的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一键安装Nginx
- 下一篇: 视频图像处理基础知识4(视频分辨率参考