SQL命令优化技巧
与数据库交互的基本语言是sql,数据库每次解析和执行sql语句多需要执行很多步骤。以sql server为例,当数据库收到一条查询语句时,语法分析器会扫描sql语句并将其分成逻辑单元(如关键词、表达式、运算符和标识符)并生成查询树,最后查询优化器将分析所有可以访问数据库的源表的方法,从中选择一组返回结果集最快且消耗资源较少的步骤。查询树随即进行更新以准确记录这个步骤,接着交由数据库引擎开始执行,然后将查询结果返回给用户。可见数据库引擎每次执行sql命令都会有很大的开销,如果提交的sql质量不高甚至有逻辑错误就会造成无谓的开销和时间浪费。为了避免这种情况,在使用sql命令时应注意以下原则:
1.字段提取要按照"需多少、提多少"的原则,避免"select *",尽量使用"select 字段1,字段2.,字段3 ..."。实践证明,每少提取一个字段,数据库提取速度就会有相应的提升。提升的速度还要由你舍弃的字段大小来决定。
2.尽量使用exists代替select count(*) 来判断是否存在记录。优化器优化exists谓词时支持短路功能。只要找到一行,不需要再扫描其他行就可以确定该表是否包含行了。count函数只有在统计表中所有行的行数时使用。
3.尽量使用(not) exists代替(not) in 操作,in的sql性能总是比较低的。
--语句
select dname,deptno from dept where deptno not in(select deptno from emp where dept.deptno=emo.deptno)
--语句
select dname,deptno from dept where not exists(select deptno from emp where dept.deptno=emo.deptno)
4.尽量使用not in,可以用left outer join代替它。
5.尽量不要使用or,使用or会引起全表扫描,将大大降低查询效率
6.注意where子句的写法,必须考虑语句顺序,应该根据索引顺序、范围大小来确定条件子句的前后顺序,尽可能地让字段顺序与索引顺序一致,范围从大到小。
7.尽量使用">=",不用使用">"
8.在编写sql语句之前了解表的索引结构。有效地利用索引能够避免不必要的全表扫描,缩短查询时间。应该避免在where子句中使用is null、<>、!=、not、 not exist、not in、not like等命令,他们通常会引起全表扫描导致索引无效。
9.在where 子句中,任何对列的操作(函数、计算等)将导致索引失效,这些操作应该尽可能地移至等号右边,如where substring(id,1,1)=‘a‘,应该写成where id like ’a%‘;where result*10> 30应该写成where result >30;
对sql命令进行优化的基本原则是尽量减少类型转换和计算,充分利用表索引,减少全表扫描的次数。
向同事安利极米H3,和当贝F3实机对比快过年了,大家回家多多少少都要带点东西回去,同事想买台投影带回老家用,但是一直选择哪一款这个问题上纠结。因为知道我一直对这方面比较喜欢,也比较有经验,希望我帮着给拿个主意。我因为一
隔空充电,未必真的是未来小米在2021年1月29日首发了自研的隔空充电技术,这套技术包含了一个充电桩,内置了五个相位干涉天线,对充电设备进行毫秒级的定位,精准定位充电设备的位置。还有144个相位控制整列天
重新选择内折屏,华为要做什么?2019年2月24日,华为发布了自家的首款折叠屏手机MateX。两年后的今天,又放出一张广告,宣告了2021年的2月22日将会发布全新的MateX2。从海报上能得到的关于手机的信息
华为又带来一款理财产品2月22日晚,华为正式发布了最新一代的折叠屏旗舰MateX2。如果你之前对于华为的折叠屏手机有过了解,那你就会知道,每一代华为的折叠屏手机都是不折不扣的理财产品。每一次折叠屏手机的
极米官宣最新旗舰产品H3S,上市后首发新机3月5日下午,极米科技官方微博宣布了其最新旗舰机型H3S将在3月9日开始全渠道预售,首发时间定在了3月16日,距离极米上一次更新H系列产品线已经过去了一年多的时间。在这段时间里,上
华为这项举措预计增收十亿美元以上,全球良心典范2021年3月16日,华为对外表示为了促进开放透明与5G技术应用平衡创新保护与行业发展,华为将从2021年开始对5G专利收取使用费,将提供适用于5G手机售价的合理百分比费率,单台许
搭载液态镜头,全球首发,小米这次又走在了前面小米在微博推送了一幅春季新品发布会的预热海报,提到了即将全球首发的液态镜头。据猜测,这颗镜头将搭载在全新的MIX系列手机上,也是帮助小米2021年进军高端的一个重要机型系列。之前也
小米全相变散热技术,IP68带高透泄压阀,29日晚还差什么?今天就是29号了,今天晚上,小米即将带来2021年春季发布会。就前期微博的预热内容来看,小米本次发布会将会有相当多的看点,并且发布的产品数量应该也是远超从前的任何一场发布会。目前知
引领智能投影领域潮流,极米H3S为用户带来极致的观影体验随着科技的进步与发展,家庭观影设备发展日趋成熟。其中,家用投影仪作为家庭观影设备之一,让用户足不出户就能感受到电影院级别的观影体验,满足了用户居家生活的需求。但投影仪品类那么多,用
卡萨帝实现了从智能产品到智慧生活的持续引领今年以来,家电消费市场已悄然出现两股新潮一股是高端品质化,另一股则是智慧成套化。特别是在8090后成为消费主力军后,他们对于高品质生活方式的向往和追求正在与时俱进。新的问题也摆在众
台积电涨了三星涨,三星涨了还有谁会涨?每日明说阿明独家分析业内消息称,三星(SamsungElectronics)已通知客户将提高芯片代工价格。从三星计划将代工价格提高1520的消息看出,全球芯片涨价潮一波未平一波又起