当前位置:Gxlcms > 数据库问题 > 数据库优化经验

数据库优化经验

时间:2021-07-01 10:21:17 帮助过:24人阅读

  特别是列名和表名都大写。 特别是 sql 命令的缓存功能, 更加需要统一大小写。

(三)能不设计外键就不要有外键

  有外键约束会影响插入和删除性能, 如果程序能够保证数据的完整性, 那在设计数据库时就去掉外键。

(四)表拆分

  在设计表的时候就可以考虑单表是否可以拆成多表操作,但是避免无意义的两个列的表,这是表的浪费。

(五)SELECT子句中避免使用 * 号

  ORACLE在解析的过程中,会将 * 依次转换成所有的列名,这个工作是通过查询数据字典完成的,这意味着将耗费更多的时间

(六)使用表的别名

  当SQL语句连接多个表时,请使用表的别名并把别名前缀于每个Column上.这样一来,就可以减少解析的时间并减少那些由Column歧义引起的语法错误。

(七)用EXISTS替代IN、用NOT EXISTS替代NOT IN

  在子查询中,NOT IN子句将执行一个内部的排序和合并.无论在哪种情况下,NOT IN都是最低效的(因为它对子查询中的表执行了一个全表遍历)。为了避免使用NOT IN ,我们可以把它改写成外连接(Outer Joins)或NOT EXISTS。

(八)优化GROUP BY

  提高GROUP BY语句的效率,可以通过将不需要的记录在GROUP BY之前过滤掉.
  低效: 
  SELECT JOB , AVG(SAL) FROM EMP GROUP by JOB HAVING JOB = ‘PRESIDENT‘
  高效: 
  SELECT JOB , AVG(SAL) FROM EMP WHERE JOB = ‘PRESIDENT‘ GROUP by JOB

 

数据库优化经验

标签:执行   存在   fonts   插入   静态   访问   avg   函数   进入   

人气教程排行