数据库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
数据库sql常见优化方案相关推荐
- MySQL数据库SQL层级优化
MySQL数据库SQL层级优化 本篇主涉及MySQL SQL Statements层面的优化. 首先,推荐一个链接为万物之始:http://dev.mysql.com/doc/refman/5.0/e ...
- Spring Batch并发加分区加集群读写数据库的完美优化方案 (下)
今天我们会介绍如何使用Spring Batch的分片技术实现定时任务的集群处理. 背景介绍 本篇文章为上一篇文章Spring Batch并发加分区读取数据库的完美优化方案的续集,上一篇文章我们介绍了通 ...
- mysql 交集_面试官:来说说MySQL的常见优化方案……
性能优化(Optimize)是在保证系统正确性的前提下,能够更快速响应请求的一种手段. 有些性能问题,比如慢查询等,如果积累到一定的程度或者是遇到急速上升的并发请求之后,会导致严重的后果,轻则造成服务 ...
- MySQL数据库---SQL语句优化及性能优化
文章目录 mysql的架构图 mysql的执行过程 sql语句执行计划 索引失效的情况 mysql性能调优: 分库分表 读写分离---主从复制 mysql的架构图 大致分为4层:连接层.服务层.引擎层 ...
- 数据库 sql 语句优化
目录 1.查询 SQL 尽量不要使用 select *,而是 select 具体字段 2.如果知道查询结果只有一条或者只要最大/最小一条记录,建议用 limit 1 3.应尽量避免在 where 子句 ...
- Oracle数据库中的优化方案
2019独角兽企业重金招聘Python工程师标准>>> 一. 优化oracle中的sql语句,提高运行效率 1. 选择最有效率的表名顺序(只在基于规则的优化器中有效) ORACLE的 ...
- 数据库 | SQL 诊断优化套路包,套路用的对,速度升百倍
本文出自头条号老王谈运维,转载请说明出处. 前言 在DBA的日常工作中,调整个别性能较差的SQL语句是一项富有挑战性的工作.面对慢SQL,一些DBA会心烦,会沮丧,会束手无措,也会沉着冷静.斗智斗勇! ...
- SQL数据库管理系统的优化方案(表的主键、外键、索引设计)
在基本表设计中,表的主键.外键.索引设计占有非常重要的地位,但系统设计人员往往只注重于满足用户要求,而没有从系统优化的高度来认识和重视它们.实际上,它们与系统的运行性能密切相关.现在从系统数据库优化角 ...
- 数据库SQL性能优化之详解
一.问题的提出 在应用系统开发初期,由于开发数据库数据比较少,对于查询SQL语句,复杂视图的的编写等体会不出SQL语句各种写法的性能优劣,但是如果将应用系统提交实际应用后,随着数据库中数据的增加,系统 ...
最新文章
- [转]SQLObject加MySQL的 utf-8解决之道
- 强大Jquery插件,table排序之二
- linux系统清除日志,如何清除Linux系统日志
- 离散数学及其应用上的一个问题
- ffmpeg在windows下的编译
- 楼宇自控ba系统 服务器,楼宇自控BA系统
- 多线程的概念及实现方式
- bzoj2438 luogu4819 [中山市选]杀人游戏
- 修改注册表解决SVN状态图标不显示问题
- Python入门 第二节 作业一
- RPC和Message Passing比较
- 韦东山嵌入式Linux第一期视频-韦东山-专题视频课程
- 计算机CAD作文,CAD:电脑系统字体和CAD字体的区别
- 1024程序员节Bilibili电脑8位密码谜底
- 用metasploit(msf)复现MS17-010(经典的永恒之蓝)SMB漏洞
- 抖音一个好的标题让你轻松上热门,该怎么写好抖音标题。
- 几种主流快速开发平台选择
- 论文中的参考文献规范
- Neurosynth package安装及使用
- 国际码可以直接应用于计算机,2001年4月份全国高等教育自学考试计算机应用基础试题...