玄惭,何许人也?
玄惭,真名罗龙九,阿里云DBA专家,负责阿里云RDS线上稳定以及专家服务团队,人称“大师”!
他,经历阿里历年双11考验,积累了6年对阿里云数据库用户的运维、调优、诊断等丰富的经验。
他,就是本次挑战赛的出题人!
经过他优化过的慢SQL,执行只需 2.09 ms 。
本次,我们就是要挑战这个结果!没有最好,只有更好!
1、挑战者需在指定的数据库环境,优化组委会提供的慢SQL。
2、挑战者需:
1)将优化过程的可执行脚本发邮件给楼主(shuping.yansp@alibaba-inc.com),由数据库专家团队复审,邮件标题为【您的云栖社区昵称+慢SQL挑战赛】;
2)将优化结果截图回复本话题。
可以不限次更新结果,最终成绩以您最近发的邮件过程为准。
3、挑战者可呼朋唤友,为自己的挑战结果增加点赞量或回复数。
4、请保护好自己的尊严,一旦发现数据造假,立即取消比赛资格。
戳这里下载指定待优化SQL。
温馨提示:以下几种环境参与比赛均可:
1)自建MySQL数据库,优化SQL;
2)阿里云数据库MySQL版,优化SQL;
3)若以上都没有,可申请阿里云免费试用套餐,只需完成认证,最长可用半年。[戳这里申请](https://free.aliyun.com/)。
举个栗子:
【我要挑战】+
优化过程的可执行脚本请通过邮件方式发给楼主(shuping.yansp@alibaba-inc.com)。
邮件标题写:您的社区昵称+慢SQL挑战赛,比如:好麦+慢SQL挑战赛
注:所有奖品将在挑战赛结束后的一周内发放。楼主会单独联系获奖者哦~
还等什么,快来挑战吧!
===============================我是优雅的分割线======================================
PS1:本挑战赛最终解释权归阿里云数据库团队所有。
PS2:挑战赛之外,我们也准备了干货以飨读者: MySQL大神的性能优化、故障排查、最佳实践秘籍——阿里云数据库专家玄惭的“武功”全记录
云栖定制电脑包 x 1
键盘是我的 谁也不要抢~~~!
A表数据:16385 B表数据:16385 C表数据:360449
第一步:加索引 简单粗暴
【我要挑战】+
只是简单的加了一个索引,40ms左右,目测玄惭的执行时间,至少应该是19ms或者29ms,更有可能是09ms!!!!!!!!!!
如果你此时EXPLAIN 一下发现Extra参数,居然有Using filesort 和Using temporary以及useing join buffer,这会让查询很吃力。
显然,肯定有更优的方案。
第二步:分步查询
【我要挑战】+
如果此时你再EXPLAIN 发现Extra参数中abc表都是 Useing WHERE,当然还有一个是USING filesort。
第三步:Using filesort 优化 加索引
【我要挑战】+
显然还是没到极致,离00009ms还差很远。
最后的最后,我发现居然是0000ms。
【我要挑战】+
至此,我都绝望了,最终发现、聊主给的SQL里面有个大坑~~~
这是在没有修改字段类型的基础上的,聊主没说可以修改,也没说不可以,对吧?
当然 对比了一下自建数据库和阿里云RDS,还是有些差别的,比如阿里云RDS目前还没优化到0.00sec的时候,但是自建的已是0.00sec。
本来加索引的字段,在自建数据库上ok,到RDS上就成了全表扫描。
自建数据库 对于数值和字符串是区分对待的,也就是所谓的隐式转换,但是RDS貌似好像屏蔽了这一点。有些字段加了索引RDS也不走,但是自建数据库走索引,什么鬼?
如果没有特殊业务需求,如果可以修改字段类型,也是必须的(前提是没有特殊要求)。
阿里云RDS:
本地5.7版本最终数据(只加索引,不修改字段类型):
修改字段类型后:
要上天
已获得云栖定制电脑包
复制链接去分享
恭喜 各位 获奖的朋友!
今天下午就要揭晓最高的大奖获得者啦,快关注 数据库在线峰会 ,演讲嘉宾是玄惭的那一场噢!https://yq.aliyun.com/promotion/274
各位获奖的小伙伴们请将你们的邮寄地址邮件发给楼主哟~~
玄惭大师的直播培训结束,点击 https://yq.aliyun.com/webinar/play/240 观看视频录播。
竟然中奖了。。。。
【我要挑战】+
额,测试了三种方案,这是其中最快的一个方案的运行时间。其他两个方案速度和大家的都差不多。
那啥,优化思路已经发楼主邮箱了,萝莉控怪蜀黍71392118 就是我。
楼主收到邮件麻烦回复一下。
厉害了我滴哥~
厉害了我的咩...
哇(@ο@) 哇~~~小萝莉跪求认识怪蜀黍!
咩咩咩咩~~~~
厉害了我的叔。。。。咩~~~
@巴洛克上校 这题看你怎么参加,哈哈
如果没人参加的话,一个多月后,咱们杭州见~~~
【我要挑战】+
【我要挑战】+
这回真有进步了,安慰下自己···
到0.00了,谁知道再具体点的时间怎么看?
开个慢查询日志能看到具体时间了
现在才看到这个活动。。。希望可以中个幸运奖。。。。
【我要挑战】,0.00s
【我要挑战】
尝试了很多写法,但是稳定不在0.4ms内,只有偶尔几次执行0.4ms,平均0.6ms,希望最后可以看到大牛的优化方案
等我 正在准备数据
抽个奖,万一中了呢
阿里云优惠券分享给你,
https://promotion.aliyun.com/ntms/act/ambassador/sharetouser.html?userCode=ecw04enl&utm_source=ecw04enl
用优惠券购买或者升级阿里云相应产品会有特惠惊喜哦!把想要买的产品的幸运券都领走吧!快下手,马上就要抢光了。 注意在手机上下订单不能使用优惠券的哦。
您的八折推荐码如下:vl9sqt,a9wlha,4lvolc,zo9gj0,ciqa6f,amzwf8,qh6tzz,0f6hfv
领取阿里云优惠券,快来用RDS 吧,最新有金融行业专用的RDS哦。
支持你!加油
好看你哦!
左看还是右看~~
柒哥V5~~
第二个不是300ms[一脸懵逼]
我错了
~看走眼了,本来建了两个库,在aliyun_old 没加索引的库上查询的~已改正加油!加油!加油!
厉害了word哥!代码可以不用截图啊,万一有人和你一样的肿么办!楼主深深滴被困扰
come on!
第一个截图 是原版代码 没动过~~~
干得好!
是不是 已经绝望了 生无可恋了~~~
我不服 有本事 你优化成负数!!!
厉害!0.00后面是啥呢?很好奇啊!记得把优化过程和SQL发楼主的邮箱哟,shuping.yansp@alibaba-inc.com,邮件标题请写:【云栖社区昵称+慢SQL挑战赛】
讲真 0.00后面已经没数字了 控制台给的
胜券在握啊,等着请你喝下午茶吧哈哈
自建 数据库 明显有问题 和阿里云RDS查询 好多差别~~~
那肯定的啊
加油~~~
棒棒哒!
看好你哦
助攻
谢谢 三土
我猜你不认识那个字~~~^-^
RDS 搞什么鬼 29ms~~~
路遥知马力 日久见人心 我还是知道的额
厉害了word哥!NB啊!!
666社会社会
∑6×10^i
最终版,不继续优化了吗
0.4ms 感觉 **09 里面有点
结束了吗
好厉害好厉害
U
来在继续哦~~白热化阶段呢!快来参加
棒,这优化结果,也是没话说
围观
V5
你好,请问能不能分享下优化过程 569914877@qq.com
单纯作为学习一下,绝对不会盗取你的成果
实在牛