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需要一次排序操作, 而其他的至少需要执行两次排序
临时表:慎重使用临时表可以极大的提高系统性能
网友评论