軟體在研發的過程中自始至終都在留意著系統的可擴充套件性。但與此同一時候也在關注著系統的效能,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後面查詢條件的順序,將尚未給定值的查詢條件放到最後面。將給定的非模糊查詢條件放到最前面;
本部落格持續更新中。敬請期待。
優化系統效能
程式框架 hibernate3 struts2 spring2 資料庫 sqlserver2008 伺服器 tomcat6 優化方法 1 配置連線池 採用的c3p0連線池 2 在程式中獲取列表時,用iterator代替list 3 在查詢之後可以使用session.clear 方法釋放快取 4 用資...
Linux系統效能優化
由於各種的i o負載情形各異,linux系統中檔案系統的預設配置一般來說都比較中庸,強調普遍適用性。然而在特定應用下,這種配置往往在i o效能方面不能達到最優。因此,如果應用對i o效能要求較高,除了採用效能更高的硬體 如磁碟 hba卡 cpu mem等 外,我們還可以通過對檔案系統進行效能調優,來...
Android 系統效能優化
android作為一種移動裝置的作業系統,無法像pc機一樣具有強大的記憶體和cpu,這就意味著,我們的android應用程式無法無節制的使用記憶體和cpu資源。很多時候我們過多的使用這些資源時,會導致系統的卡頓或者程式anr。常見的記憶體使用異常主要包括兩種 記憶體溢位和記憶體洩露。記憶體溢位 指的...