sql语句的简单优化
来源:互联网 发布:蓝牙连接软件 编辑:程序博客网 时间:2024/05/22 16:53
1、选择最有效率的表名顺序
数据库的解析器按照从右到左的顺序处理from子句中的表名,from字句中写在最右边的表将最先被处理。在from字句中包含多个表的情况下,必须选择记录条数最少的表放在最后。
例如:查询员工的id、姓名、工资、部门号以及部门所在的区域号
select e.id,e.last_name,e.salary,d.id,r.idform s_region r,s_dept d,s_emp ewhere e.dept_id=d.id and d.region_id=r.id;1) 如果3个表是完全无关系的话,将记录和列名最少的表卸载最后,依次类推
2)如果3个表示有关系的话,将引用最多的表放在最后,依次类推
2、where字句中的连接顺序
数据库采用自右而左的顺序解析where子句,根据这个原理,表之间的连接必须写在其他where条件之左,那些可以过滤掉最大数量记录的条件必须在where字句之
例如:查询工资大于1500的员工id、姓名和部门号
select e.id,e.last_name,e.salary,d.idfrom s_dept d,s_emp ewhere e.dept_id=d.id and e.salary>1500;
3、select字句中避免使用*号
数据库在解析的过程中,会将*依次转换成所有的列名,这个工作是通过查询数据字典完成的,这意味着将耗费跟多的时间4、尽量使用多表查询
若使用子查询最终也会被转换成多表查询,同样会耗费时间
5、避免全表扫描
Where中少用NOT、!=、<>、!<、!>、NOT EXISTS、NOT IN、NOT LIKE,它们会引起全表扫描。
6、用truncate替代delete
truncate属于ddl,不可回滚,表内容删除速度快;delete属于dml,可回滚,删除速度慢,需要逐条删除
7、尽量使用commit
因为commit会释放回滚点
8、尽量使用where语句代替having字句
因为where先执行而having后执行
9、尽量使用表和列的别名
阅读全文
0 0
- sql语句的简单优化
- sql语句的简单优化
- 一次简单的SQL语句优化
- Oracle sql语句简单优化
- Oracle sql语句简单优化
- Oracle sql语句简单优化
- SQL语句的优化
- sql语句的优化
- SQL语句的优化
- SQL语句的优化
- SQL语句的优化
- Sql语句的优化
- sql语句的优化
- SQL语句的优化
- SQL语句的优化:
- SQL语句的优化
- SQL语句的优化
- SQL语句的优化
- ConnectivityManager 判断网络是否可用
- Burpsuite+SQLMAP双璧合一绕过Token保护的应用进行注入攻击
- 设计模式 -- 建造者模式和工厂(类)模式的区别
- JavaIO简单摘要(二)
- Spring Cloud Eureka
- sql语句的简单优化
- 2017/8/4
- 【物联网】技术导论(入门介绍篇)
- 设置H5页面适应手机屏幕
- main函数参数及可变参数列表
- CentOS中配置lvm存储
- 8.4
- Vue 学习笔记
- Wormholes (弗洛伊德 )