软件在研发的过程中自始至终都在留意着系统的可扩展性。但与此同一时候也在关注着系统的性能,SQL语句作为系统性能的一环不容忽视。从今天開始结合开发的经验,谈一下我对SQL语句优化的理解和认知:

1、在联合查询语句中做到小表驱动大表:

联合查询是经常使用到的一种查询方式,左连接、右连接、内连接等等时不时地被应用在查询语句中,然而在这一过程中假设能判明各表的数据量,那就再好只是了,在这样的情况下from后面应该紧跟数据量小的表。为什么?呵呵呵,比方a表有1000条数据,b表有20条数据。使用左连接进行联合查询假设a表驱动b表,那么b表就要被訪问1000次,但假设b表驱动a表,a仅仅要被訪问20次,其性能可想而知。

2、不要使用in+子查询

请注意,我这里并没有说不要使用in查询,假如in中的值是给定的。而不是通过select从其他表中查询取得,那么使用inkeyword也无可厚非,可是假如in中的数据是通过select从其他表中查询取得的,强烈建议将其改为联合查询的方式,详细方法请參看博客《SQL语句优化——in,not in,exists,not exists, left join...on》.

3、注意wherekeyword后面查询条件的顺序,将尚未给定值的查询条件放到最后面。将给定的非模糊查询条件放到最前面;

本博客持续更新中。敬请期待。

提高系统性能——对SQL语句优化的思考相关推荐

  1. SQL语句优化技术分析

    SQL语句优化技术分析 操作符优化 IN 操作符 用IN写出来的SQL的优点是比较容易写及清晰易懂,这比较适合现代软件开发的风格. 但是用IN的SQL性能总是比较低的,从ORACLE执行的步骤来分析用 ...

  2. 优化数据库的方法及SQL语句优化的原则

    优化数据库的方法: 1.关键字段建立索引. 2.使用存储过程,它使SQL变得更加灵活和高效. 3.备份数据库和清除垃圾数据. 4.SQL语句语法的优化.(可以用Sybase的SQL Expert,可惜 ...

  3. mysql优化的几种方法_详解mysql数据库不同类型sql语句优化方法

    概述 分享一下之前笔记记录的一些不同类型sql语句优化方法,针对mysql. 主要分成优化INSERT语句.优化ORDER BY语句.优化GROUP BY 语句.优化嵌套查询.优化OR语句这几个方面, ...

  4. 【腾讯面试题】SQL语句优化方法有哪些?

    SQL语句优化 性能不理想的系统中,除了一部分是因为应用程序的负载确实超过了服务器的实际处理能力外,更多的是因为系统存在大量的SQL语句需要优化. 为了获得稳定的执行性能,SQL语句越简单越好.对复杂 ...

  5. MySQL优化之三:SQL语句优化

    一 SQL语句优化的一般步骤: 1 通过show status命令了解各种SQL语句的执行频率 mysql> show status;                #show status:显 ...

  6. mysql常用sql语句优化

    转载自:http://www.cnblogs.com/gomysql/p/3632209.html 在数据库日常维护中,最常做的事情就是SQL语句优化,因为这个才是影响性能的最主要因素.当然还有其他方 ...

  7. mysql高效sql语句_高效SQL优化 非常好用的SQL语句优化34条

    高效SQL优化 非常好用的SQL语句优化34条 相关软件相关文章发表评论 来源:2011/2/13 9:38:43字体大小: 作者:佚名点击:576次评论:0次标签: 类型:电子教程大小:8.5M语言 ...

  8. mysql sql优化入门_Mysql入门SQL 语句优化方法30例

    作者:VEPHP   时间 2017-09-27 <Mysql入门SQL 语句优化方法30例>要点: 本文介绍了Mysql入门SQL 语句优化方法30例,希望对您有用.如果有疑问,可以联系 ...

  9. php面试专题---MySQL常用SQL语句优化

    php面试专题---MySQL常用SQL语句优化 一.总结 一句话总结: 原理,万变不离其宗:其实SQL语句优化的过程中,无非就是对mysql的执行计划理解,以及B+树索引的理解,其实只要我们理解执行 ...

最新文章

  1. JavaScript实时更新中国标准时间
  2. java 非法字符u3000_IDEA编码格式问题:Error:(3, 13) java: 非法字符: '\u0000'
  3. linux rcs执行错误,求助大神:linux启动的时候执行完rc.sysinit就死在rcS上了
  4. Java的登陆验证问题
  5. 声明式事务--@EnableTransactionManagement || @Transactional
  6. 群里别人问的杂七杂八的问题
  7. 数据决策成共识 大数据产业期待点“数”成金
  8. jQuery解决ajax请求的跨域问题
  9. Android打开日历账号管理,Android 日历CalendarProvider
  10. 创新的原则(《创新与企业家精神》彼得·德鲁克)
  11. python ubuntu dlib 8- 输出人脸坐标
  12. ACM入门教程-线性递推
  13. 布法罗计算机专业怎么样,布法罗大学 University at Buffalo
  14. 实验4-1-5 统计素数并求和 (20 分)
  15. POSIX是什么?解决了什么问题?
  16. DirectX11 Direct3D初始化
  17. 初识Spring Cloud 之 五大神兽
  18. 【前端学习】Git的安装和基本使用方法和环境变量配置 时光大魔王
  19. ros2-Foxy安装教程
  20. 21世纪计算机科学与技术,大学计算机基础——常用办公软件(21世纪计算机科学与技术实践型教程)...

热门文章

  1. 学习,是前进的必由之路
  2. 闲话网名之“jrfly331”
  3. 在虚拟主机中无法实现缩放等交互
  4. 计算机原理与基础 —— 进制之间的转换(二进制与十、八、十六禁止之间的转换)
  5. 廖雪峰Java11多线程编程-3高级concurrent包-4Concurrent集合
  6. 使用 Rx 中预定义的 Subject
  7. Kattis - bela
  8. hdu 4667 Building Fence 计算几何模板
  9. SimpleAdapter真不简单!
  10. Hibenate工具类(实现增/删/改/查)