为什么要优化:
     随着实际项目的启动,数据库经过一段时间的运行,最初的数据库设置,会与实际数据库运行性能

会有一些差异,这时我们就需要做一个优化调整。

数据库优化这个课题较大,可分为四大类:
       》主机性能
       》内存使用性能
       》网络传输性能
       》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

数据库sql常见优化方案相关推荐

  1. MySQL数据库SQL层级优化

    MySQL数据库SQL层级优化 本篇主涉及MySQL SQL Statements层面的优化. 首先,推荐一个链接为万物之始:http://dev.mysql.com/doc/refman/5.0/e ...

  2. Spring Batch并发加分区加集群读写数据库的完美优化方案 (下)

    今天我们会介绍如何使用Spring Batch的分片技术实现定时任务的集群处理. 背景介绍 本篇文章为上一篇文章Spring Batch并发加分区读取数据库的完美优化方案的续集,上一篇文章我们介绍了通 ...

  3. mysql 交集_面试官:来说说MySQL的常见优化方案……

    性能优化(Optimize)是在保证系统正确性的前提下,能够更快速响应请求的一种手段. 有些性能问题,比如慢查询等,如果积累到一定的程度或者是遇到急速上升的并发请求之后,会导致严重的后果,轻则造成服务 ...

  4. MySQL数据库---SQL语句优化及性能优化

    文章目录 mysql的架构图 mysql的执行过程 sql语句执行计划 索引失效的情况 mysql性能调优: 分库分表 读写分离---主从复制 mysql的架构图 大致分为4层:连接层.服务层.引擎层 ...

  5. 数据库 sql 语句优化

    目录 1.查询 SQL 尽量不要使用 select *,而是 select 具体字段 2.如果知道查询结果只有一条或者只要最大/最小一条记录,建议用 limit 1 3.应尽量避免在 where 子句 ...

  6. Oracle数据库中的优化方案

    2019独角兽企业重金招聘Python工程师标准>>> 一. 优化oracle中的sql语句,提高运行效率 1. 选择最有效率的表名顺序(只在基于规则的优化器中有效) ORACLE的 ...

  7. 数据库 | SQL 诊断优化套路包,套路用的对,速度升百倍

    本文出自头条号老王谈运维,转载请说明出处. 前言 在DBA的日常工作中,调整个别性能较差的SQL语句是一项富有挑战性的工作.面对慢SQL,一些DBA会心烦,会沮丧,会束手无措,也会沉着冷静.斗智斗勇! ...

  8. SQL数据库管理系统的优化方案(表的主键、外键、索引设计)

    在基本表设计中,表的主键.外键.索引设计占有非常重要的地位,但系统设计人员往往只注重于满足用户要求,而没有从系统优化的高度来认识和重视它们.实际上,它们与系统的运行性能密切相关.现在从系统数据库优化角 ...

  9. 数据库SQL性能优化之详解

    一.问题的提出 在应用系统开发初期,由于开发数据库数据比较少,对于查询SQL语句,复杂视图的的编写等体会不出SQL语句各种写法的性能优劣,但是如果将应用系统提交实际应用后,随着数据库中数据的增加,系统 ...

最新文章

  1. [转]SQLObject加MySQL的 utf-8解决之道
  2. 强大Jquery插件,table排序之二
  3. linux系统清除日志,如何清除Linux系统日志
  4. 离散数学及其应用上的一个问题
  5. ffmpeg在windows下的编译
  6. 楼宇自控ba系统 服务器,楼宇自控BA系统
  7. 多线程的概念及实现方式
  8. bzoj2438 luogu4819 [中山市选]杀人游戏
  9. 修改注册表解决SVN状态图标不显示问题
  10. Python入门 第二节 作业一
  11. RPC和Message Passing比较
  12. 韦东山嵌入式Linux第一期视频-韦东山-专题视频课程
  13. 计算机CAD作文,CAD:电脑系统字体和CAD字体的区别
  14. 1024程序员节Bilibili电脑8位密码谜底
  15. 用metasploit(msf)复现MS17-010(经典的永恒之蓝)SMB漏洞
  16. 抖音一个好的标题让你轻松上热门,该怎么写好抖音标题。
  17. 几种主流快速开发平台选择
  18. 论文中的参考文献规范
  19. Neurosynth package安装及使用
  20. 国际码可以直接应用于计算机,2001年4月份全国高等教育自学考试计算机应用基础试题...

热门文章

  1. MVC项目实践,在三层架构下实现SportsStore-01,EF Code First建模、DAL层等
  2. 量子计算机不能解决的问题,量子计算机破产问题传统计算机无法解决
  3. Excel数据驱动框架实战
  4. 高德地图zoom设置为小数
  5. 【技术认证题库】齐治初级运维安全认证——RIS堡垒机习题
  6. 使用ADC精确测量电阻阻值
  7. 注解的作用 常用注解
  8. 惊蛰时节,最好看的微信公众号图文排版,全在这里了
  9. NOI2018 冒泡排序规律证明
  10. Redis 6.0新特性——ACLs