2018-10-08
查詢的模糊匹配:盡量避免在一個復雜查詢里面使用模糊匹配
索引問題:缺少合適的索引
法則:不要在建立的索引的數(shù)據(jù)列上進行下列操作:
避免對索引字段進行計算操作
避免在索引字段上使用not,<>,!=
避免在索引列上使用IS NULL和IS NOT NULL
避免在索引列上出現(xiàn)數(shù)據(jù)類型轉(zhuǎn)換
避免在索引字段上使用函數(shù)
避免建立索引的列中使用空值。
復雜操作:部分select、update語句寫的很復雜。可以考慮拆成幾步
update:同一個表的修改在一個過程里出現(xiàn)很多次。整合到一個語句
在可以使用UNION ALL的語句里使用了UNION:UNION 因為會將各查詢子集的記錄做比較,故比起UNION ALL ,通常速度都會慢上許多。
在WHERE 語句中,盡量避免對索引字段進行計算操作
對Where 語句的法則:
避免在WHERE子句中使用in,not in,or 或者having
不要以字符格式聲明數(shù)字,要以數(shù)字格式聲明字符值。(日期同樣)
WHERE后面的條件順序影響
對Select語句的法則:在應用程序、包和過程中限制使用select * from table這種方式。
排序:避免使用耗費資源的操作
帶有DISTINCT,UNION,MINUS,INTERSECT,ORDER BY的SQL語句會啟動SQL引擎 執(zhí)行,耗費資源的排序(SORT)功能. DISTINCT需要一次排序操作, 而其他的至少需要執(zhí)行兩次排序
臨時表:慎重使用臨時表可以極大的提高系統(tǒng)性能