mysql小结果集驱动大结果集_【mysql】mysql数据库join优化问题

最近在读简朝阳大牛的《MySQL性能调优与架构设计》,看到关于join的优化有个问题不得解,如下:

基本优化原则一:永远用小的结果集驱动大的结果集

他的解释是:因为驱动结果集越大,意味着需要循环的次数越多,也就是说在被驱动结果集上面所 需要执行的查询检索次数会越多。比如,当两个表(表 A 和 表 B) Join 的时候,如果表 A 通过 WHERE 条件过滤后有 10 条记录,而表 B 有 20 条记录。如果我们选择表 A 作为驱动表,也就是被驱动表的结果集为 20,那么我们通过 Join 条件对被驱动表(表 B)的比较过滤就会有 10 次。反之,如果我们选择表 B 作为驱动表,则需要有 20 次对表 A 的比较过滤。

那么,我现在又如下sql语句:

SELECT A.ap_id,A.ap_rank,A.ap_name,

A.ap_releasedate,A.ap_price,A.ap_permalink,

A.ap_keyword,A.ap_down,A.ap_size,

A.ap_score,A.ap_times,A.ap_like,A.ap_description,

A.sys_time,A.ap_icon,A.ap_httppath,A.ap_path1,

A.ap_path2,P.pd_name, C.cat_name

FROM mb_apps1 AS A

LEFT JOIN mb_sys_category AS C

ON A.ap_cat=C.cat_no

LEFT JOIN mb_product AS P

ON A.ap_productid=P.pd_id

WHERE A.label

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值