项目中优化sql语句执行效率的方法:
1)尽量选择较小的列
2)将where中用的比较频繁的字段建立索引
3)select子句中避免使用‘*’
4)避免在索引列上使用计算、not in 和<>等操作
5)当只需要一行数据的时候使用limit 1
6)保证单表数据不超过200W,适时分割表。
针对查询较慢的语句,可以使用explain 来分析该语句具体的执行情况。

------------------------------------------------------------------------------

1.尽量不要在where中包含子查询;

关于时间的查询,尽量不要写成:where to_char(dif_date,’yyyy-mm-dd’)=to_char(’2007-07-01′,’yyyy-mm-dd’);

2.在过滤条件中,可以过滤掉最大数量记录的条件必须放在where子句的末尾;

FROM 子句中写在最后的表(基础表,driving table)将被最先处理,在FROM子句中包含多个表的情况下,你必须选择记录条数最少的表作为基础表。如果有三个以上的连接查询,那就需要选择交叉表 (intersection table)作为基础表,交叉表是指那个被其他表所引用的表;

3.采用绑定变量

4.在WHERE中尽量不要使用OR

5.用EXISTS替代IN、用NOT EXISTS替代NOT IN;

6.避免在索引列上使用计算:WHERE SAL*12>25000;

7.用IN来替代OR: WHERE LOC_ID=10 OR LOC_ID=15 OR LOC_ID=20

8.避免在索引列上使用IS NULL和IS NOT NULL;

9.总是使用索引的第一个列;

10.用UNION-ALL替代UNION;

11.避免改变索引列的类型:SELECT…FROM EMP WHERE EMPNO=’123′,由于隐式数据类型转换,to_char(EMPNO)=’123′,因此,将不采用索引,一般在采用字符串拼凑动态SQL语句出现;

12.’!=’ 将不使用索引;

13.优化GROUP BY;

14.避免带有LIKE参数的通配符,LIKE ’4YE%’使用索引,但LIKE ‘%YE’不使用索引

15. 避免使用困难的正规表达式,例如select * from customer where zipcode like “98___”,即便在zipcode上建立了索引,在这种情况下也还是采用顺序扫描的方式。如果把语句改成select * from customer where zipcode>”98000″,在执行查询时就会利用索引来查询,显然会大大提高速度;

16.尽量明确的完成SQL语句,尽量少让数据库工作。比如写SELECT语句时,需要把查询的字段明确指出表名。尽量不要使用SELECT *语句。组织SQL语句的时候,尽量按照数据库的习惯进行组织。

在CSDN逛时看到的一个资源,先记下,有些还要亲自再去试一遍,看执行计划是否真的优化。

原文地址:http://www.penglixun.com/tech/database/improve_sql_efficiency_16_ways.html

转载于:https://www.cnblogs.com/xuyatao/p/6738779.html

提高SQL执行效率的16种方法相关推荐

  1. 提高SQL执行效率的几点建议

    提高SQL执行效率的几点建议: 1.尽量不要在where中包含子查询 2.关于时间的查询,尽量不要写成:where to_char(dif_date,'yyyy-mm-dd')=to_char('20 ...

  2. 提高C程序效率的10种方法

    任何代码的美丽不仅在于找到一个给定的问题的解决方案,但在它的简单性,有效性,紧凑性和效率(内存).设计的代码比实际执行更难 .因此,每一个程序员当用C语言开发时,都应该保持这些基本的东西在头脑中. 本 ...

  3. 测试代码执行效率的几种方法比较

    ## 一般我们在项目中为了测试某段代码的执行效率一般会使用到NSDate , CFAbsoluteTimeGetCurrent() , CACurrentMediaTime() 这几种常用方法. ## ...

  4. 如何测试sql服务器的性能测试,SQL执行效率和性能测试方法

    对于做管理系统和分析系统的程序员,复杂SQL语句是不可避免的,面对海量数据,有时候经过优化的某一条语句,可以提高执行效率和整体运行性能.如何选择SQL语句,本文提供了两种方法,分别对多条SQL进行量化 ...

  5. 提高IIS网站服务器的效率的八种方法 (转载)

    作者:未知  请作者速与本人联系 以下是提高IIS 5.0网站服务器的执行效率的八种方法: 1. 启用HTTP的持续作用可以改善15~20%的执行效率. 2. 不启用记录可以改善5~8%的执行效率. ...

  6. 嵌入式编程C语言提高代码效率的14种方法

    嵌入式编程C语言提高代码效率的14种方法 1.在可能的情况下使用typedef替代define.当然有时候你无法避免define,但是typedef更好. typedef int* INT_PTR; ...

  7. EDA - verdi提高dump效率的几种方法Conventional Issues Verdi’s Approach

    verdi提高dump效率的几种方法Conventional Issues & Verdi's Approach Issues and Conventional Approach • Toda ...

  8. improve php,解析提高PHP执行效率

    解析提高PHP执行效率 1.用单引号代替双引号来包含字符串,这样做会更快一些.因为PHP会在双引号包围的字符串中搜寻变量, 单引号则不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的 ...

  9. Oracle查看执行计划的几种方法

    Oracle查看执行计划的几种方法 一般来说,有如下几种获取执行计划的方式: 1.AUTOTRACE方式 AUTOTRACE是Oracle自带的客户端工具SQL*Plus的一个特性.启用AUTOTRA ...

最新文章

  1. 敏捷过程、极限编程和SCRUM的关系
  2. 基于re模块的计算器
  3. SpringBoot项目依赖本地jar包
  4. (67)FPGA模块调用(Verilog调用system Verilog)
  5. Android JNI(二)——实战JNI入门之Hello World
  6. CSS flex 布局 一些基本属性应用
  7. ArcGIS学习总结(16)——反距离权重法插值及批处理(IDW)
  8. 【转】高性能web开发
  9. WRONGTYPE Operation against a key holding the wrong kind of value
  10. 阿里云商标安心注册服务失败不通过可以退款?
  11. mkv文件怎样转成mp4
  12. HAOI2017 八纵八横——线段树分治+线性基
  13. 如何安装Eclipse WTP插件
  14. wps html转换成pdf文件,wps怎么转换成pdf
  15. PHP,$this-{$xxx} 是什么意思?
  16. tkinter 设置不可编辑_jquery 设置页面元素不可点击、不可编辑、只读(备忘)
  17. 【开源】我和 JAP(JA Plus) 的故事
  18. linux终端分辨率对应表,Linux下设置终端分辨率,最全的VGA代码和分辨率对照表...
  19. 如何直接打印int[]数组
  20. 灵活替换、无惧缺芯,ARM工控板中的模块化设计

热门文章

  1. 打造基于大并发通信技术及大数据技术的O2O系统
  2. 又一访问access
  3. hda: status timeout: status=0xd0 { Busy }报错解决!
  4. 【MONGODB】验证MONGODB 主从复制
  5. 自定义ImageView 实现双击放大缩小还原,无极缩小和旋转及拖动(多机型测试很稳定)
  6. AndroidManifest中activity属性设置大全
  7. phpmyadmin配置
  8. 一.JavaScript基础
  9. FreeType(字体渲染引擎):支持多种字体格式(TTF,TTC等)
  10. git安装、使用及常见报错