0.索引
1.當你想在SELECT子句中列出所有的COLUMN時,使用動態SQL列引用 ‘*’ 是一個方便的方法。不幸的是,這是一個非常低效的方法。 實際上,在解析的過程中會將‘*’ 依次轉換成所有的列名, 這個工作是通過查詢數據字典完成的,這意味着將耗費更多的時間。
2.增加內存、另外硬盤的讀寫速度如何?這都是影響查詢效率因素。如果磁盤讀寫速度比較慢的話,對於磁盤的I/O操作會存在的瓶頸的。
3.數據量比較大建議做一下分區處理。把大的表分成幾個表,這樣的查詢效率會大大提高的。
4.數據庫采用自下而上的順序解析WHERE子句,根據這個原理,表之間的連接必須寫在其他WHERE條件之前, 那些可以過濾掉最大數量記錄的條件必須寫在WHERE子句的末尾。
例如:
(低效,執行時間156.3秒)
SELECT … FROM EMP E WHERE SAL > 50000 AND JOB = ‘MANAGER’AND 25 < (SELECT COUNT(*) FROM EMP WHERE MGR=E.EMPNO);
(高效,執行時間10.6秒)
SELECT … FROM EMP E WHERE 25 < (SELECT COUNT(*) FROM EMP WHERE MGR=E.EMPNO) AND SAL > 50000 AND JOB = ‘MANAGER’;
————————————————
版權聲明:本文為CSDN博主「風神修羅使」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/WuLex/article/details/51694872