数据库多表查询中速度缓慢的解决办法

之前做的查询功能今天被发现你速度缓慢 于是上网搜索解决的办法,但是网上的大佬们都是提到了优化数据库设计方面的办法,但是作为一个实习生怎么敢轻易改动数据库 于是就自己花了一个下午在改一条sql语句,最后总结出来了一点经验吧!

  1. 条件先行
    在查询的时候大部分都是多表联查吧,单查一个表的情况很少 ,在俩个表以及俩个表以上联查的时候肯定会有一个主表(大部分条件都是在个表),其他的表基本就是一个条件等于一下 查一个字段 问题就在这里
    谨记:查询是尽量嵌套select(最笨的办法),在最内层的select里面只查数据最多的那个表,而且该层select的from后尽量只出现一个表(主表),需要用到其他表的时候再去嵌套select(外层),把内层表查到的数据放在外层表的from关键子后 作为一个新表来查

我感觉自己没有说清楚 那就举个例子吧:

优化前:
SELECT a.a , a.b , a.c , b.a FROM biaoOne a , bioaTwo b WHERE a.d = ‘’ AND a.e LIKE ‘%%’ AND a.f = b.a AND a.g = b.b

优化后:
SELECT t.* , tt.a FROM
(SELECT a.a , a.b , a.c FROM biaoOne a WHERE a.d = ‘’ AND a.e LIKE ‘%%’) t , bioatwo tt
WHERE t.f = tt.a AND t.g = tt.b

大致就是这个意思,优化后的速度比优化前快很多 尤其在数据量很大的情况下

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值