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