文档章节

设计select语句时影响效率查询的15个情况

loveminer
 loveminer
发布于 2017/08/10 15:47
字数 707
阅读 1
收藏 0
点赞 0
评论 0
  • 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统计表中所有的记录数数量 。

© 著作权归作者所有

共有 人打赏支持
loveminer
粉丝 1
博文 9
码字总数 7845
作品 0
程序员
in和exists的区别与SQL执行效率分析

本文对in和exists的区别与SQL执行效率进行了全面整理分析…… 最近很多论坛又开始讨论in和exists的区别与SQL执行效率的问题, 本文特整理一些in和exists的区别与SQL执行效率分析 SQL中in可以...

mj4738 ⋅ 2012/09/24 ⋅ 0

in和exists的区别与SQL执行效率分析

本文对in和exists的区别与SQL执行效率进行了全面整理分析…… 最近很多论坛又开始讨论in和exists的区别与SQL执行效率的问题, 本文特整理一些 in和exists的区别与SQL执行效率分析 SQL中in可以...

张升强 ⋅ 2012/11/29 ⋅ 0

MySQL查询语句中的IN 和Exists 对比分析

背景介绍 最近在写SQL语句时,对选择IN 还是Exists 犹豫不决,于是把两种方法的SQL都写出来对比一下执行效率,发现IN的查询效率比Exists高了很多,于是想当然的认为IN的效率比Exists好,但本...

lilugoodjob ⋅ 05/27 ⋅ 0

Mysql 大数据量高并发的数据库优化

Mysql 大数据量高并发的数据库优化 一、数据库结构的设计 如果不能设计一个合理的数据库模型,不仅会增加客户端和服务器段程序的编程和维护的难度,而且将会影响系统实际运行的性能。所以,在...

botkenni ⋅ 2016/11/15 ⋅ 0

数据库性能优化之SQL语句优化2

温馨提示:本篇内容均来自网上,本人只做了稍微处理,未进行细致研究,仅当做以后不备之需,如若你喜欢可尽情转走。 性能不理想的系统中除了一部分是因为应用程序的负载确实超过了服务器的实...

陶邦仁 ⋅ 2012/11/06 ⋅ 0

查询语句中in和exists的区别

in in可以分为三类: 一、 形如select *from t1 where f1 in ( 'a ', 'b '),应该和以下两种比较效率   select *from t1 where f1= 'a ' or f1= &...

五大三粗 ⋅ 2015/02/27 ⋅ 0

Oracle数据库高性能秘密之数据高速缓存

原文:http://www.php100.com/html/webkaifa/database/oracle/2009/0418/1348.html 使用过Oracle数据库的人都知道,Oracle数据库的运行速度与效率,在同类数据库中是名列前茅的,特别是对大量...

xingyun2010 ⋅ 2011/02/24 ⋅ 0

Mysql性能优化一

mysql的性能优化无法一蹴而就,必须一步一步慢慢来,从各个方面进行优化,最终性能就会有大的提升。 Mysql数据库的优化技术 对mysql优化是一个综合性的技术,主要包括 表的设计合理化(符合3...

JAVA_NINA ⋅ 2016/05/09 ⋅ 0

MySQL数据库设计总结

MySQL数据库设计总结 规则1:一般情况可以选择MyISAM存储引擎,如果需要事务支持必须使用InnoDB存储引擎。 注意:MyISAM存储引擎 B-tree索引有一个很大的限制:参与一个索引的所有字段的长度...

xjt2016 ⋅ 2016/11/28 ⋅ 0

从四个细节出发做好MySQL查询优化

众所周知,在任何一个数据库中,查询优化都是不可避免的一个话题。对于数据库工程师来说,优化工作是最有挑战性的工作。MySQL开源数据库也不例外。其实笔者认为,数据库优化并没有大家所想象...

五味格子 ⋅ 2011/05/11 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

RabbitMQ学习以及与Spring的集成(三)

本文介绍RabbitMQ与Spring的简单集成以及消息的发送和接收。 在RabbitMQ的Spring配置文件中,首先需要增加命名空间。 xmlns:rabbit="http://www.springframework.org/schema/rabbit" 其次是模...

onedotdot ⋅ 24分钟前 ⋅ 0

JAVA实现仿微信红包分配规则

最近过年发红包拜年成为一种新的潮流,作为程序猿对算法的好奇远远要大于对红包的好奇,这里介绍一种自己想到的一种随机红包分配策略,还请大家多多指教。 算法介绍 一、红包金额限制 对于微...

小致dad ⋅ 36分钟前 ⋅ 0

Python 数电表格格式化 xlutils xlwt xlrd的使用

需要安装 xlutils xlwt xlrd 格式化前 格式化后 代码 先copy读取的表格,然后按照一定的规则修改,将昵称中的学号提取出来替换昵称即可 from xlrd import open_workbookfrom xlutils.copy ...

阿豪boy ⋅ 今天 ⋅ 0

面试题:使用rand5()生成rand7()

前言 读研究生这3 年,思维与本科相比变化挺大的,这几年除了看论文、设计方案,更重要的是学会注重先思考、再实现,感觉更加成熟吧,不再像个小P孩,人年轻时总会心高气傲。有1 道面试题:给...

初雪之音 ⋅ 今天 ⋅ 0

Docker Toolbox Looks like something went wrong

Docker Toolbox 重新安装后提示错误:Looks like something went wrong in step ´Checking if machine default exists´ 控制面板-->程序与应用-->启用或关闭windows功能:找到Hyper-V,如果处......

随你疯 ⋅ 今天 ⋅ 0

Guacamole 远程桌面

本文将Apache的guacamole服务的部署和应用,http://guacamole.apache.org/doc/gug/ 该链接下有全部相关知识的英文文档,如果水平ok,可以去这里仔细查看。 一、简介 Apache Guacamole 是无客...

千里明月 ⋅ 今天 ⋅ 0

nagios 安装

Nagios简介:监控网络并排除网络故障的工具:nagios,Ntop,OpenVAS,OCS,OSSIM等开源监控工具。 可以实现对网络上的服务器进行全面的监控,包括服务(apache、mysql、ntp、ftp、disk、qmail和h...

寰宇01 ⋅ 今天 ⋅ 0

AngularDart注意事项

默认情况下创建Dart项目应出现以下列表: 有时会因为不知明的原因导致列表项缺失: 此时可以通过以下步骤解决: 1.创建项目涉及到的包:stagehand 2.执行pub global activate stagehand或pub...

scooplol ⋅ 今天 ⋅ 0

Java Web如何操作Cookie的添加修改和删除

创建Cookie对象 Cookie cookie = new Cookie("id", "1"); 修改Cookie值 cookie.setValue("2"); 设置Cookie有效期和删除Cookie cookie.setMaxAge(24*60*60); // Cookie有效时间 co......

二营长意大利炮 ⋅ 今天 ⋅ 0

【每天一个JQuery特效】淡入淡出显示或隐藏窗口

我是JQuery新手爱好者,有时间就练练代码,防止手生,争取每天一个JQuery练习,在这个博客记录下学习的笔记。 本特效主要采用fadeIn()和fadeOut()方法显示淡入淡出的显示效果显示或隐藏元...

Rhymo-Wu ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部