SQL语句的优化(常规SQL语句的优化)

一、常规SQL语句的优化
1.1、不用 “ * ” 代替所有的列名。因为这样操作的时候 ,系统会通过数字字典将“ * ”转换成表的所有列名,会消耗大量的系统时间,查询速度比较的慢;
1.2、用truncate代替delete。使用delete删除数据,oracle会使用撤销表空间来存放恢复的信息,使用commit提交才会删除表数据,如果不使用commit进行提交,数据可以恢复到删除之前的状态;使用truncate会对表的数据直接删除,速度比较的快,不过也不能任何时候都使用truncate,当删除表中的某一条数据时使用delete;
1.3、在确保数据完整性的情况下多使用commit语句。使用commit语句可以实现DML语句的快速提交,可以快速的释放事务占用的资源,提高性能;
1.4、减少表查询的次数。在含有子查询的SQL语句中,尽量减少多表的查询:
低效率SQL:

SELECT NAME,age,sex
FROM student
WHERE age IN(SELECT age FROM Class WHERE age = 18)
OR age IN(SELECT age FROM Class WHERE age = 20) ;

高效率SQL:

SELECT NAME,age,sex
FROM student
WHERE age IN(SELECT age FROM Class WHERE age = 18 OR age = 20);

从上边的语句可以看出:第一种低效率的SQL要进行两次查询,第二种高效率的SQL只需要查询一次,明眼人一眼就可以看出来哪个好;
1.5‘、使用[not] exists 代替 [not ]in。[not] in 语句效率最低,他在操作的时候对查询的表进行了全表遍历
not in 语句:

SELECT NAME,age,sex
FROM student
WHERE age NOT IN(SELECT age FROM Class WHERE age = 18) ;

exists 语句:

SELECT NAME,age,sex
FROM student
WHERE EXISTS(SELECT age FROM Class WHERE age != 18);

注意在使用的时候,exists的前边一定不要加字段,因为习惯了加字段,所以总是犯错,这个死坑;其实当in后边的子句,结果集很小的时候也是可以用的;

SQL语句的优化(常规SQL语句的优化)相关推荐

  1. 优化器-SQL语句分析与优化

    一.连接-配置优化 1.1 连接数过多问题 有时会碰到Mysql:error 1040:Too many connection的错误.原因:超过了服务端设置的最大并发连接数. 1.2 从两个方面解决问 ...

  2. Sql性能优化之sql语句的写法

    Sql性能优化之sql语句的写法 一.引言 系统优化中一个很重要的方面就是SQL语句的优化.对于海量数据,劣质SQL语句和优质SQL语句之间的速度差别可以达到上百倍,可见对于一个系统不是简单地能实现其 ...

  3. SQL语句性能优化--LECCO SQL Expert

    SQL语句的优化是将性能低下的SQL语句转换成目的相同的性能优异的SQL语句. 人工智能自动SQL优化就是使用人工智能技术,自动对SQL语句进行重写,从而找到性能最好的等效SQL语句. 数据库性能的优 ...

  4. mysql性能优化之sql语句优化最强合集

    2019独角兽企业重金招聘Python工程师标准>>> 当mysql单表记录数过大时,增删改查的性能都会急剧下降.系统优化中一个很重要的方面就是sql语句的优化.因此我们下边主要讨论 ...

  5. oracle 优化分组 sql语句,Oracle SQL语句之常见优化方法 五

    0.低效SQL语句查询: SELECT b.sql_text, --SQL內容 a.sid, a.serial#, a.status, a.machine, --哪台机器運行的SQL a.userna ...

  6. oracle sql语句加速选项,Oracle SQL优化基本步骤

    本空间日志均为一种学习记录. ----------------该文章无法找到原创出自何处.若有侵范,请告知! 最近有尝试做SQL优化.一直不得要领,请逛到这里的高人提供一些优化实例(最好是有优化历程说 ...

  7. 【搬家】【数据库】【优化】SQL 优化学习小结——索引和语句优化

    本文最早于 2013年10月17日于本人个人博客(http://mooowooo.tk)发表,现博客搬家至此,转载请注明出处. SQL 语句的优化对于每个与数据库打交道的程序员来说都是必不可少的一课, ...

  8. 3mysql优化之SQL语句调优

    文件在:E:\学习文档子目录压缩\数据库\mysql\mysql优化\蚂蚁\蚂蚁1\3mysql优化之SQL语句调优 或 我的网盘\我的笔记\学习文档子目录压缩\数据库\mysql\mysql优化\蚂 ...

  9. sql语句优化之SQL Server

    MS   SQL   Server查询优化方法 查询速度慢的原因很多,常见如下几种 1.没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷)          2.I/O吞吐量小,形成 ...

最新文章

  1. spring事务-说说Propagation及其实现原理
  2. 机器“血液”登上Nature:一条假鱼靠它续航36小时,无需固态电池
  3. [转]高颜值、好用、易扩展的微信小程序 UI 库,Powered by 有赞
  4. python全栈开发第36天------GIL全局解释锁、死锁现象和递归锁、信号量、Event事件、线程...
  5. 【逆向分析】快速查找指定代码的几种方法
  6. Python学习之并发基础知识
  7. 子进程 已安装 post-installation 脚本 返回错误状态 1 dpkg: 依赖关系问题使得 mysql-server 的配置工作不能继续: mysql-server 依赖于 mysq
  8. numpy 二维、高维矩阵重新排列轴与数据(轴转换)
  9. 微服务架构工作笔记001---认识Service Mesh
  10. java swing jcheckbox_Swing JCheckBox类
  11. BN、LN、IN、GN和SN
  12. Win7安装IE10或IE11 离线安装注意问题
  13. AI 赋能安全技术总结与展望
  14. 智能云服务器选型,智能主机概述、选型及应用
  15. 当天使爱上吸血鬼,上帝开始哭泣
  16. 内网服务器通过CCproxy代理上网
  17. resources下建包
  18. 用HTML+CSS+JS做一个漂亮的个人网页
  19. 直播观看指南|SOFA 五周年,Live Long and Prosper!
  20. 为什么很多计算机专业大学生毕业后还会参加培训?

热门文章

  1. 【内蒙古山西の游记(7.17~7.24)】二周目
  2. 记一次 .NET 某电子病历 CPU 爆高分析
  3. Pixi.js TypeScript Webpack
  4. 阿里云服务器安装mysql数据库教程
  5. 如何优雅查看Ubuntu的系统信息
  6. 如何设置IIS中的HTTPS服务
  7. 交换机日志删除_如何查看交换机报警日志 并导出日志 命令是什么
  8. gentoo安装全过程
  9. python聚类wardhierachical_聚类之hierachical clustering算法
  10. 等效结点荷载计算机语言,基于FORTRAN的3D等效结点荷载计算