1.提高SQL語句的可讀性:
雖然這並不能直接影響數據庫的性能,數據庫並不在意你的SQL語句的外觀是否整潔,但當我們用調整的眼光去觀察一個SQL語句時,SQL語句的可讀性就是我們將要考慮的第一個問題,試問如果我們連語句都很難看清那麼我們又該如果判斷該語句是否正確甚至是對該語句進行修改和優化呢?所以,爲了能讓我們的SQL語句能擁有更好的可讀性。我有以下幾點建議提供給大家。
- 讓每個子句都從新的一行開始:這可以使我們的SQL語句層次更分明一目瞭然。
- 當子句內參數超過一行需要換行時,使用製表符或空格進行縮進
- 當語句中使用多個表時,使用表的別名:假設這些表的全名都比較長,那麼多次使用全名將會使得我們的語句變得冗長。
- 有節制的使用註釋:過分使用註釋將讓我們的語句顯得十分臃腫
- 讓select的多個字段都從新的一行開始:這能讓我們更直觀的知道自己需要什麼。
- 如果from子句中使用了多個表那麼每個表名都從新的一行開始
- 讓where子句的每個條件都從新的一行開始:讓我們可以清晰的看到所有條件和次序。
2.FROM子句中的表的次序
由於結合操作通常從表中返回大部分數據,所以結合條件應該在更嚴格的條件之後執行
3.結合條件的次序
一個原則,讓排除越多的條件越優先執行
4.大規模數據避免全表掃描 合理的使用索引可以大大提高數據庫性能 5.使用LIKE操作符和通配符 6.避免使用OR操作符(用IN代替) 7.避免使用HAVING子句 避免使用HAVING子句,HAVING 只會在檢索出所有記錄之後纔對結果集進行過濾。這個處理需要排序,總計等操作。如果能通過WHERE子句限制記錄的數目,那就能減少這方面的開銷。 8.避免大規模排序操作 很佔內存 9.使用存儲過程 10.刪除冗餘記錄 給數據庫瘦個身,避免檢索重複數據
11.避免多次訪問數據庫
數據庫每次在被訪問時都會執行很多操作,這必將耗費一些時間而這些時間的耗費是可以嘗試避免的
12.SELECT子句中避免使用‘*’:
Oracle在解析的過程中, 會將‘*’依次轉換成所有的列名, 這個工作是通過查詢數據字典完成的, 這意味着將耗費更多的時間。