千锋教育-做有情怀、有良心、有品质的职业教育机构

400-811-9990
手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

上海
  • 北京
  • 郑州
  • 武汉
  • 成都
  • 西安
  • 沈阳
  • 广州
  • 南京
  • 深圳
  • 大连
  • 青岛
  • 杭州
  • 重庆
当前位置:郑州千锋IT培训  >  行业资讯  >  千锋郑州大数据培训学员分享常见的SQL优化方案

千锋郑州大数据培训学员分享常见的SQL优化方案

来源:千锋教育
发布人:Yolanda
时间: 2018-10-24 16:42:00

  在千锋郑州大数据培训班已经学习了两个多月了,我渐渐适应了这里高强度的学习节奏。转眼间第二阶段的学习就要结束,在这一个月里我们又学习了很多新的知识,其中SQL优化是对数据库操作效率提高的重要课题,接下来我就给大家分享几个常用的、但容易忽视的几个SQL优化方案。

  一、避免进行null判断。应尽量避免在where子句中对字段进行null值判断,否则将导致引擎放弃。使用索引而进行全表扫描最好不要给数据库留NULL,尽可能的使用 NOT NULL填充数据库。备注、描述、评论之类的可以设置为 NULL,其他的,最好不要使用NULL。不要以为NULL不需要空间,比如:char(100) 型,在字段建立时,空间就固定了。不管是否插入值(NULL也包含在内),都是占用 100个字符的空间的,如果是varchar这样的变长字段, null 不占用空间。可以在num上设置默认值0,确保表中num列没有null值。

图片4

  二、不要使用select *。使用select *的话会增加解析的时间,另外会把不需要的数据也给查询出来,数据传输也是耗费时间的。比如text类型的字段通常用来保存一些内容比较繁杂的东西,如果使用select *则会把该字段也查询出来。

  三、谨慎使用模糊查询。当模糊匹配以%开头时,该列索引将失效,若不以%开头,该列索引有效。

  四、不要使用列号。使用列号的话,将会增加不必要的解析时间。

  五、优先使用UNION ALL,避免使用UNION。因为UNION 会将各查询子集的记录做比较,故比起UNION ALL ,通常速度都会慢上许多。一般来说,如果使用UNION ALL能满足要求的话,务必使用UNION ALL。还有一种情况,如果业务上能够确保不会出现重复记录。

  六、在where语句或者order by语句中避免对索引字段进行计算操作。当在索引列上进行操作之后,索引将会失效。正确做法应该是将值计算好再传入进来。

  七、使用not exist代替not in。如果查询语句使用了not in 那么内外表都进行全表扫描,没有用到索引;而not extsts 的子查询依然能用到表上的索引。

图片5

  八、exist和in的区别。in是把外表和内表作hash连接,而exists是对外表作loop循环,每次loop循环再对内表进行查询。因此,in用到的是外表的索引, exists用到的是内表的索引。如果查询的两个表大小相当,那么用in和exists差别不大。如果两个表中一个较小,一个是大表,则子查询表大的用exists,子查询表小的用in。

  九、避免在索引列上做如下操作。1.避免在索引列上使用IS NULL和IS NOT NULL。2.避免在索引列上出现数据类型转换(比如某字段是String类型,参数传入时是int类型)。当在索引列上使用如上操作时,索引将会失效,造成全表扫描。

  十、复杂操作可以考虑适当拆成几步。有时候会有通过一个SQL语句来实现复杂业务的例子出现,为了实现复杂的业务,嵌套多级子查询。造成SQL性能问题。对于这种情况可以考虑拆分SQL,通过多个SQL语句实现,或者把部分程序能完成的工作交给程序完成。

  从刚开始的java基础直接转战到了大数据技术,学习的难度进一步加大,我们一直出于紧张的学习当中,在这SQL、Linux和Hadoop之间打转。但千锋郑州大数据培训班的老师很负责,只要我们肯用心学习,就可以取得很大进步。当然,过程中不仅有成就感,也有挫败感,但却真的很充实,因为我们在进步,距离梦想也越来越近。

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。

猜你喜欢LIKE

大数据培训要花多少钱

2023-04-12

计算机前端怎么学

2023-04-12

大数据都需要学什么?难不难

2023-03-30

最新文章NEW

javaee是前端还是后端,都学什么

2023-03-24

it前端是做什么的

2023-03-24

大数据培训要多久?你了解多少

2023-03-09

相关推荐HOT

更多>>

快速通道 更多>>

最新开班信息 更多>>

网友热搜 更多>>