SQL

sql--性能优化

2018-10-08  本文已影响0人  vsu

2018-10-08

查询的模糊匹配:尽量避免在一个复杂查询里面使用模糊匹配

索引问题:缺少合适的索引
法则:不要在建立的索引的数据列上进行下列操作:
避免对索引字段进行计算操作
避免在索引字段上使用not,<>,!=
避免在索引列上使用IS NULL和IS NOT NULL
避免在索引列上出现数据类型转换
避免在索引字段上使用函数
避免建立索引的列中使用空值。

复杂操作:部分select、update语句写的很复杂。可以考虑拆成几步

update:同一个表的修改在一个过程里出现很多次。整合到一个语句

在可以使用UNION ALL的语句里使用了UNION:UNION 因为会将各查询子集的记录做比较,故比起UNION ALL ,通常速度都会慢上许多。

在WHERE 语句中,尽量避免对索引字段进行计算操作

对Where 语句的法则:
避免在WHERE子句中使用in,not in,or 或者having
不要以字符格式声明数字,要以数字格式声明字符值。(日期同样)
WHERE后面的条件顺序影响

对Select语句的法则:在应用程序、包和过程中限制使用select * from table这种方式。

排序:避免使用耗费资源的操作
带有DISTINCT,UNION,MINUS,INTERSECT,ORDER BY的SQL语句会启动SQL引擎 执行,耗费资源的排序(SORT)功能. DISTINCT需要一次排序操作, 而其他的至少需要执行两次排序

临时表:慎重使用临时表可以极大的提高系统性能

上一篇下一篇

猜你喜欢

热点阅读