zoukankan      html  css  js  c++  java
  • 数据库sql优化方案

    声明:这个不是我自己写的,是我们老师给我,我拿出来分享一下!

    为什么要优化:
         随着实际项目的启动,数据库经过一段时间的运行,最初的数据库设置,会与实际数据库运行性能会有一些差异,这时我们         就需要做一个优化调整。

    数据库优化这个课题较大,可分为四大类:
           》主机性能
           》内存使用性能
           》网络传输性能
           》SQL语句执行性能【软件工程师】


    下面列出一些数据库SQL优化方案:


    (01)选择最有效率的表名顺序(笔试常考)
          数据库的解析器按照从右到左的顺序处理FROM子句中的表名,
          FROM子句中写在最后的表将被最先处理,
          在FROM子句中包含多个表的情况下,你必须选择记录条数最少的表放在最后,
          如果有3个以上的表连接查询,那就需要选择那个被其他表所引用的表放在最后。
          例如:查询员工的编号,姓名,工资,工资等级,部门名
          select emp.empno,emp.ename,emp.sal,salgrade.grade,dept.dname
          from salgrade,dept,emp
          where (emp.deptno = dept.deptno) and (emp.sal between salgrade.losal and salgrade.hisal)          
          1)如果三个表是完全无关系的话,将记录和列名最少的表,写在最后,然后依次类推
          2)如果三个表是有关系的话,将引用最多的表,放在最后,然后依次类推


    (02)WHERE子句中的连接顺序(笔试常考)  
          数据库采用自右而左的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHERE条件之左,
          那些可以过滤掉最大数量记录的条件必须写在WHERE子句的之右。  
          例如:查询员工的编号,姓名,工资,部门名  
          select emp.empno,emp.ename,emp.sal,dept.dname
          from emp,dept
          where (emp.deptno = dept.deptno) and (emp.sal > 1500)   
          
    (03)SELECT子句中避免使用*号
          数据库在解析的过程中,会将*依次转换成所有的列名,这个工作是通过查询数据字典完成的,这意味着将耗费更多的时间
          select empno,ename from emp;

    (04)用TRUNCATE替代DELETE
       
    (05)尽量多使用COMMIT
          因为COMMIT会释放回滚点

    (06)用WHERE子句替换HAVING子句
          WHERE先执行,HAVING后执行
         
    (07)多使用内部函数提高SQL效率
         
    (08)使用表的别名
          salgrade s
         
    (09)使用列的别名
          ename e
      

  • 相关阅读:
    flink 读取kafka 数据,partition分配
    Flink 报错 "Could not find a suitable table factory for 'org.apache.flink.table.factories.StreamTableSourceFactory' in the classpath"
    flume接收http请求,并将数据写到kafka
    【翻译】Flume 1.8.0 User Guide(用户指南) Processors
    【翻译】Flume 1.8.0 User Guide(用户指南) Channel
    【翻译】Flume 1.8.0 User Guide(用户指南) Sink
    【翻译】Flume 1.8.0 User Guide(用户指南) source
    【翻译】Flume 1.8.0 User Guide(用户指南)
    Apache Flink 简单安装
    Java之使用IDE
  • 原文地址:https://www.cnblogs.com/julinhuitianxia/p/6868663.html
Copyright © 2011-2022 走看看