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