1、没有创建索引,或者没有正确使用索引;
2、存在死锁的情况,从而导致select语句挂起; 
3、返回不必要的列,如很多人喜欢在程序中使用select * from 这样会查询表或视图中的所有字段,如果表或视图的数量比较大时候,就会浪费系统资源,应该只要返回必要的列 ;
4、在select语句中使用where子句,限制返回的记录数 ;
5、使用TOP关键字,限制返回的记录数 ;
6、在使用like关键字的时候需要注意通配符的使用方法 ;
7、慎用union关键字,因为它会影响到查询的效率 ;
8、慎用Distinct关键字,因为在结果集中的重复记录并不会影响到查询的效率,相反则需要消耗相应的资源去过滤重复记录,除非必须如此,不要使用此关键字 ;
9、如果需要经常对表中的数据进行统计,可以在表中增加一个统计字段,每次表中的数据发生变化的时候,动态更新统计字段。这样,在查询统计结果时,就不需要临时对表中的数据进行统计计算了 ;
10、如果需要多次对一个数据量非常大的表中的一部分数据进行查询操作,可以将这部分数据保存到临时表中,然后对临时表进行查询操作,并且可以根据需要在临时表中增加索引 ;
11、在where子句中使用BETWEEN关键字比IN要快,因为IN关键字对其后面的集合中的每一个元素都进行比较,如果必须使用IN关键字,则可以将频繁使用的值放在集合的前面,从而减少比较的次数 ;
12、 尽量少使用视图,特别是嵌套视图,可以直接从表中获取数据。在开发中,有人为了方便,设计一个包含很多字段的大视图,这样无论查询什么字段都从此视图中 取。实际上,最好从表中直接获取数据,一面查询大视图而造成的系统的开销。建议用存储过程取代视图,从而提高执行效率 ;
13、如果不要排序,尽量不要使用order by语句,这也会增加开销 ;
14、不要在where语句中=的左侧使用函数火表达式,英文系统将无法应用函数或表达式中的索引 ;
15、当判断表中是否包含记录时,使用EXISTS关键字,而不要使用count统计表中所有的记录数数量 。

select语句中会影响查询效率的因素的更多相关文章

  1. 【MYSQL】update/delete/select语句中的子查询

    update或delete语句里含有子查询时,子查询里的表不能在update或是delete语句中,如含有运行时会报错:但select语句里含有子查询时,子查询里的表可以在select语句中. 如:把 ...

  2. SQL Fundamentals: 子查询 || WHERE,HAVING,FROM,SELECT子句中使用子查询,WITH子句

    SQL Fundamentals || Oracle SQL语言 子查询(基础) 1.认识子查询 2.WHERE子句中使用子查询 3.在HAVING子句中使用子查询 4.在FROM子句中使用子查询 5 ...

  3. SQL SERVER SELECT语句中加锁选项的详细说明

    共享锁(读锁)和排他锁(写锁)   共享锁(S锁):共享 (S) 用于不更改或不更新数据的操作(只读操作),如 SELECT 语句. 如果事务T对数据A加上共享锁后,则其他事务只能对A再加共享锁,不能 ...

  4. 在 SQL Server 数据库的 WHERE 语句中使用子查询

    这是关于子查询语句的一系列文章中的第三篇.在这篇文章中我们将讨论WHERE语句中的子查询语句.其他的文章讨论了其他语句中的子查询语句. 本次课程中的所有例子都是基于Microsoft SQL Serv ...

  5. SQL SERVER SELECT语句中加锁选项的详细说明 [转]

    SQL Server提供了强大而完备的锁机制来帮助实现数据库系统的并发性和高性能.用户既能使用SQL Server的缺省设置也可以在select 语句中使用“加锁选项”来实现预期的效果. 本文介绍了S ...

  6. 关于Mysql select语句中拼接字符串的记录

    在mysql的SELECT语句中拼接两列(或多列)的字符串显示: mysql> select concat(dname,loc) from dept; 以上语句便把dept表的dname,loc ...

  7. GO学习-(36) Go语言在select语句中实现优先级

    Go语言在select语句中实现优先级 Go语言在select语句中实现优先级 select语句介绍 Go 语言中的 select语句用于监控并选择一组case语句执行相应的代码.它看起来类似于swi ...

  8. 在sql查询中为了提高查询效率,我们常常会采取一些措施对查询语句进行sql优化,下面总结的一些方法,有需要的可以参考参考。

    转载https://www.cnblogs.com/zhang-bo/p/9138151.html 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建 ...

  9. mysql处理上百万条的数据库如何优化语句来提高处理查询效率

    1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索 ...

随机推荐

  1. orcale 数据库的一些知识

    最近学了一些Oracle数据库的知识,我想自己整理一下,以后也方便自己查阅的. orcale 数据库登录(tiger) 1. sql plus 登录 用户名: sys 口令: 主机字符串:orcl a ...

  2. 微信小程序组件解读和分析:十五、switch 开关选择器

    switch 开关选择器组件说明: switch,开关选择器.只能选择或者不选.这种属于表单控件或者查询条件控件. switch 开关选择器示例代码运行效果如下: 下面是WXML代码: [XML] 纯 ...

  3. APP崩溃处理

    以前经常遇到APP内部异常情况下的Exception,最初是通过try catch这样的方式处理:但是APP上线后,用户在特地的情况下触发 了某些Exception,当然这些Exception从理论和 ...

  4. Objective -C Categories

    Objective -C Categories  The dynamic runtime dispatch mechanism employed by Objective-C lets you add ...

  5. CAD参数绘mcdbsolid对象(网页版)

    主要用到函数说明: _DMxDrawX::DrawSolid 绘McDbSolid对象.详细说明如下: 参数 说明 DOUBLE dX1 第一个点X DOUBLE dY1 第一个点Y DOUBLE d ...

  6. spark版本不支持(降版本打包)

    在做项目的时候代码已经更新为hadoop 2.7  spark 2.1 scala 2.11.8版本,但是服务器版本使用的是hadoop2.6 spark1.6 以及scala2.10.6版本,,主程 ...

  7. Java Servlet 非英文乱码

    response.setHeader("Content-Type", "text/json; charset=UTF-8"); request.setChara ...

  8. 获取汉字的拼音首字母--pinyin

    var pinyin = (function (){ var Pinyin = function (ops){ this.initialize(ops); }, options = { checkPo ...

  9. 【VScode】使用VScode 来写markdown时序图

    准备工作 在VScode中下载插件Markdown Preview Enhanced插件 创建一个.md文件 在VScode中打开文件,界面内点击右键可以看到Open preview to the s ...

  10. react-native Socket Event 在控制台的输出

    在XCode中运行react-native 的时候,避免不了的要查看日志信息 ,但是react-native中的Socket的日志简直是太多了,往往是刚看到自己想要看到的信息的时候,瞬间就被最新的日志 ...