zoukankan      html  css  js  c++  java
  • sql 查询优化小计

        好久没更博了,偷偷的抽时间写一下。

        早上开始working的时候,发现一个页面加载很慢,经排查是昨天写的一条联合查询的sql导致的。于是着手优化!

        首先想到的是在join的时候,减少表体积之后再进行关联,于是有了下面这种写法:

         (原sql)  a join b on a.bid=b.id  =>  (新sql) a join (select id,phone from b where b.site=35) b on a.bid=b.id  

        上面是将b表进行where过滤以后再与a表进行关联,执行以后查询相对快了一点,毕竟b表体积小了,关联的时候自然就快了一点。但是,瞅着这句sql就是不太顺眼,毕竟用了子查询,虽然方便,但是感觉还是有损效率的。这个时候,就突然想起以前看到的一个博主写到的,“在使用join以后,可以在on或者where后面加上条件,sql在解析的时候,会先读取条件,再进行关联”,想到这里,就恍然大悟了,何必用子查询?直接后面在where里写条件就好了。

        另外一个方面,查询的时候,一般的会有多个表进行关联, 遵循上面的原理,我们一般把小表放后面,查完了小表再去关联大表。

        

          这里我是用的sql server ,查询的时候有个分析工具挺好用的:

        

        就这个,显示估计的执行计划,可以在这里查看sql的执行消耗。

        嗯,谈不上什么技术点,就是记录一下。

        

  • 相关阅读:
    H5及微信中唤起app的解决方案
    html5统计数据上报API:SendBeacon
    基于webpack4的react开发环境配置
    electron-vue开发爬坑指南
    利用git 进行多人协作开发
    js 性能优化利器:prepack
    各种渲染方式对比解析
    Nuxt.js部署应用的方式
    微信小程序--data的赋值与取值
    甘超波:什么是个人定位
  • 原文地址:https://www.cnblogs.com/sunshine-wy/p/8880438.html
Copyright © 2011-2022 走看看