Heim >Datenbank >MySQL-Tutorial >MySQLSQL优化:Percona优化器真的好吗?_MySQL

MySQLSQL优化:Percona优化器真的好吗?_MySQL

WBOY
WBOYOriginal
2016-06-01 13:17:38928Durchsuche

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

有些时候,还是原配靠谱,小三不一定给力。我们先看下sar报告:明显地,CPU %idle 非常低,粗大事了。我们的告警邮件里显示,单条SQL执行时间长达 300秒左右。

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

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

?

1

2

3

4

5

6

7

<font face="NSimsun">LEFT</font> <font face="NSimsun">OUTER</font> <font face="NSimsun">JOIN</font> `yy_game_info` `game` ON <font face="NSimsun">(`t`.`game_code`=`game`.`game_code`)</font>

<font face="NSimsun">LEFT</font> <font face="NSimsun">OUTER</font> <font face="NSimsun">JOIN</font> `yy_company_list` `corp` ON <font face="NSimsun">(`t`.`company_id`=`corp`.`company_id`)</font>

<font face="NSimsun">LEFT</font> <font face="NSimsun">OUTER</font> <font face="NSimsun">JOIN</font> `yy_sp_game_rel` `sp` ON <font face="NSimsun">(`t`.`sp_id`=`sp`.`sp_id`</font>

                                          AND <font face="NSimsun">`t`.`game_code`=`sp`.`game_code`)</font>

<font face="NSimsun">WHERE</font> <font face="NSimsun">(((t.game_code=game.game_code)</font>

        AND <font face="NSimsun">(t.company_id=corp.company_id))</font>

       AND <font face="NSimsun">(corp.is_open=1))</font>

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

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

查看版本时,我们发现:

备库的版本:5.5.22-log (MySQL原版)

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

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

Good Luck!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn