前段时间一直在做关于性能优化相关的工作,结合自己的实际工作经验,只针对SQL层面提一些优化的规范和建议。

针对SQL编写

1、单条SQL长度不宜超过100行;

2、SQL子查询不宜嵌套3层:

子查询嵌套过多,又可能会导致解析过于复杂,产生错误的执行计划;

3、SQL表关联需要考虑连接和限制条件的索引;

4、同一模块避免出现大量相似之处:

这种SQL写法一般比较可疑,一般可以优化,比如用with子句等;

5、尽量避免对列进行运算:

对列进行运算会导致索引失效,也会影响查询效率;

6、尽量批量提交;

7、尽量用数据量少的表作为驱动表,在表关联中,尽量使用小表关联大表。

索引相关

1、函数索引一般要尽量避免

2、位图索引在更新时是个噩梦,应谨慎使用

3、单表无索引时需要谨慎,但是索引数量也应控制

4、建联合索引时需要结合单列查询考虑,并考虑索引列的前后(详情参考前面的文章Oracle索引之Btree索引

阻碍索引的情况

1、在索引列上使用not和<>

索引只能告诉我们什么存在于表中,不能告诉我们什么不存在表中。

2、在索引列上使用计算

包括‘||’,’+’但不限于这些字符串连接函数和数学函数,都会停用索引。

3、相同的索引列进行比较,会启用全表扫描。

4、当检索数据量超过30%表中的记录数,使用索引将没有显著的效率提高。

如果觉得我写的对你有帮助,欢迎关注我的公众号“代码狗go”支持一下呀。

关于SQL优化的一点建议的更多相关文章

  1. 关于Kafka部署优化的一点建议

    网络和IO线程配置优化 配置参数 num.network.threads:Broker处理消息的最大线程数 num.io.threads:Broker处理磁盘IO的线程数 优化建议 一般num.net ...

  2. c/c++性能优化--- cache优化的一点杂谈

    之前写了一篇关于c/c++优化的一点建议,被各种拍砖和吐槽,有赞成的有反对的,还有中立的,网友对那篇博客的的评论和吐槽,我一个都没有删掉,包括一些具有攻击性的言论.笔者有幸阅读过IBM某个项目的框架代 ...

  3. sql优化建议

    背景:        在北京工作期间,我们做应用开发的和后台数据库的联系非常大,我们经常在一起讨论存储过程或者是sql性能优化的事情来降低应用运行时的时间,提高性能,经过和数据库方面的工程师的一些讨论 ...

  4. OCM_第十四天课程:Section6 —》数据库性能调优_各类索引 /调优工具使用/SQL 优化建议

    注:本文为原著(其内容来自 腾科教育培训课堂).阅读本文注意事项如下: 1:所有文章的转载请标注本文出处. 2:本文非本人不得用于商业用途.违者将承当相应法律责任. 3:该系列文章目录列表: 一:&l ...

  5. 52 条 SQL 语句性能优化策略,建议收藏

    本文会提到 52 条 SQL 语句性能优化策略. 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在where及order by涉及的列上建立索引. 2.应尽量避免在where子句中对字段进行nul ...

  6. SQL性能优化的思路建议

    如何在 Oracle数据库里写出高质量的SQL语句,如何在Oracle数据库里对有性能问题的SQL做诊断和调整,这是DBA们在ORACLE数据库实践中不可避免的难题.下面就让我们来分析一下拿到一条问题 ...

  7. (转)SQL 优化原则

    一.问题的提出 在应用系统开发初期,由于开发数据库数据比较少,对于查询SQL语句,复杂视图的的编写等体会不出SQL语句各种写法的性能优劣,但是如果将应用 系统提交实际应用后,随着数据库中数据的增加,系 ...

  8. SQL优化(zhuan)

    转自:http://www.jfox.info/SQL-you-hua 数据库的优化问题 一.问题的提出 在应用系统开发初期,由于开发数据库数据比较少,对于查询SQL语句,复杂视图的的编写等体会不出S ...

  9. SQL 优化原则

    一.问题的提出 在应用系统开发初期,由于开发数据库数据比较少,对于查询SQL语句,复杂视图的的编写等体会不出SQL语句各种写法的性能优劣,但是如果将应用 系统提交实际应用后,随着数据库中数据的增加,系 ...

随机推荐

  1. Ubuntu16.04 创建和使用虚拟环境

    1. 虚拟环境   虚拟环境(virtual environment),顾名思义是虚拟出来的环境,通俗来讲,可以借助虚拟机,docker来理解虚拟环境,就是把一部分内容独立出来,我们把这部分独立出来的 ...

  2. 操作系统与cpu

  3. zabbix源码安装实例

    环境 系统                 Centos7 zabbix版本      Zabbix 3.4.15 (revision 86739) zabbix源码安装 .tar.gz cd zab ...

  4. @CreatedDate、@CreatedBy、@LastModifiedDate、@LastModifiedBy

    在spring jpa audit 中,在字段或者方法上使用注解@CreatedDate.@CreatedBy.@LastModifiedDate.@LastModifiedBy,当进行实体插入或者更 ...

  5. 如何查看端口recv和send

    1.进入到pod的宿主机   一般来说 ssh  slaveX 2.查看进程号   top可以看到 3.执行命令    nsenter --target 10594 --net netstat -an

  6. xgboost 最优参数, df某一个字段进行字符串搜索

    0.909323  with:   {'max_depth': 6, 'min_child_weight': 0.8, 'n_estimators': 800} df_huoguo = df[df.c ...

  7. DOS特殊字符转义方法

    http://www.robvanderwoude.com/escapechars.php 期望得到的字符 转义后字符 说明 % %% May not always be required in do ...

  8. myeclipse2017下载安装与破解详细教程

    下载myeclipse2017百度云下载路径: 链接:https://pan.baidu.com/s/1wQYwO2zrUvbbUcjCB5B8IQ 密码:6igu myeclipse2017破解文件 ...

  9. https----------如何在phpstudy环境下配置apache的https访问以及访问http自动跳转成https

    1.首先在 httpd.conf里面修改几个地方 找到 #LoadModule ssl_module modules/mod_ssl.so 去掉前面的# Include conf/vhosts.con ...

  10. bfs记录路径,蓝桥杯真题

    题意:在01矩阵中,找到一条从入口到终点的最短路径,并且打印这条路径. 题目链接:http://lx.lanqiao.cn/problem.page?gpid=T291 #include<ios ...