sql优化之隐式转换

大家知道数据库为了提高查询速度 增加索引是必不可少的 但是有些时候即使你加了索引也不定有效果,索引的使用其实和你的sql语句有很大得关系,例如我们不能够在索引上面增加表达式,或者 索引上有null 值 等这些都会让sql放弃索引进行全表扫描,不过有时候我们会发现一个很奇怪的问题:明明sql 符合规范为啥还是这全表扫描

 比如我曾经遇到果一个问题 隐式转换引起得问题 不说了  直接上代码

    

       有没有看到全表二个表全表扫描 为什么呢?很简单得sql   为什么不走索引呢.

      我想了很久 就想到有一种可能当我们sql 字段类型不一样会使用隐式和转换 来看看是不是这个情况 看看 join 得2个字段

    

  二个表userid 字段不一样 一个 nunber 一个 varchar 发生了隐式转换 

那我们怎么优化呢 很简单 把他们得字段搞成一个类型就好了


好了 这样 表都走索引了 ,当数据量特别大时候 我们sql得优势才会显现出来。

        下一章我会更新一下 当数据量非常大,请求量很大的情况下 怎么能够减少服务器压力 让他不宕机!


  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值