• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

MySQL SQL优化:Percona优化器真的好吗

mysql 搞代码 4年前 (2022-01-09) 18次浏览 已收录 0个评论

MySQL SQL优化:Percona优化器真的好吗? 这是MySQL SQL优化分享第2篇,大家都很崇尚MySQL的一个强大分支Percona,真该跟风吗? 有些时候,还是原配靠谱,小三不一定给力。 我们先看下sar报告: 明显地,CPU %idle 非常低,粗大事了。我们的告警邮件里显示,

MySQL SQL优化:Percona优化器真的好吗?

这是MySQL SQL优化分享第2篇,大家都很崇尚MySQL的一个强大分支Percona,真该跟风吗?

有些时候,还是原配靠谱,小三不一定给力。

我们先看下sar报告:

明显地,CPU%20%idle%20非常低,粗大事了。我们的告警邮件里显示,单条SQL执行时间长达%20300秒左右。

原始SQL非常长,这里就不贴了,但要表述的一个优化技巧是,优化的第一步,就是格式化%20SQL%20%20:-)

我们看下问题SQL的问题部分:

LEFT%20OUTER%20JOIN%20`yy_game_info`%20`game`%20ON%20(`t`.`game_code`=`game`.`game_code`)LEFT%20OUTER%20JOIN%20`yy_company_list`%20`corp`%20ON%20(`t`.`company_id`=`corp`.`company_id`)LEFT%20OUTER%20JOIN%20`yy_sp_game_rel`%20`sp`%20ON%20(`t`.`sp_id`=`sp`.`sp_id`%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20AND%20本文来源gaodaimacom搞#^代%!码&网*`t`.`game_code`=`sp`.`game_code`)WHERE%20(((t.game_code=game.game_code)%20%20%20%20%20%20%20%20AND%20(t.company_id=corp.company_id))%20%20%20%20%20%20%20AND%20(corp.is_open=1))

可以发现,ON中的关联条件与谓词where存在重复。

虽然在MySQL中,过滤器ON和过滤器where的用法不同,但原则上我们不允许出现条件重复

同样的SQL在备库执行时效果还不错:

但我们到主库执行,发现驱动表竟然走全表扫,郁闷。

查看版本时,我们发现:

备库的版本:5.5.22-log (MySQL原版)
主库的版本:5.5.28-rel29.1-log (Percona原版)
问题SQL在该版本的Percona优化器中无法被自动解析,但在MySQL原版可以

这也引出一个问题,复制环境的主备版本最好一致,至少可以减少DBA troshoting的成本


看到了吧,小三未必盖得过原配



Good Luck!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:MySQL SQL优化:Percona优化器真的好吗

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址