
改写后,放在DB中履行,耗时0.98秒。这意味着,义务人萌芽大年夜5s成功降到了1s内,足足降低了4s;如许,整体上也完全知足机能请求。
我在17:25将SQL移交给了开辟,留给开辟人员35分钟时光去开辟验证。
1、学无尽头的立场
结不雅天然是皆大年夜欢乐,项目顺利上线。
二、心得
这是典范的按竽暌古先级排序后取最大年夜值的需求。当前的筹划是:
- 依次大年夜DB中获取四种权限对应的DU_ID;
- 在JAVA中根据DB返回的权限断定权限类型。
当SE拿到我归并的SQL后,满脸的困惑:
“这个SQL会不会有问题?”
“我是按照营业需求改写的,如不雅我没出缺点懂得需求的话,SQL就是精确的。”
“也是,我测试了好几种场景,结不雅看起来都是精确的。”
接着我又具体讲解了Rank的功用和用法。SE长吁一声说道:“早知道Oracle有如斯“神器”,当初就也不花费老大年夜劲在Java中做权限类型归集了,还弄出了机能问题。看来真的是学无尽头呀。”
在此,我无意于苛求SE“早知如斯,何必当初”,毕竟术业有专攻。独一不解的是,偌大年夜的一个项目组(近200人),居然没有设备一名DB开辟工程师。建表,写SQL这些活都是由Java开辟人员经办。而在与Java开辟工程师沟通中懂得到,部分人员根本没有SQL基本,更不消说是开辟经验。而他们写SQL的方法即简荡竽暌怪粗暴,是大年夜同事那边拿一个功能类似的SQL,直接在此基本上修改,也不知道该SQL的具体含义。
这种现学现卖的方法也直接导致了很大年夜的机能问题。恰是因为确切了DB开辟工程师的岗亭设备,大年夜大年夜弱化了SQL功能,使得DB退化成为仅仅是数据存储功能,掉去了真正的核心:组织和治理功能。
作为不仅仅是世界500强的企业,作为国内代表顶尖开辟水准的企业,在企业治理体系的开辟项目中,尚且不设备专职DB开辟工程师,而其它企业的开辟团队的人员设备就更可想而知了。
至此,我已成竹在胸。
2、获得为止的┞奋学
在组长的运筹帷幄下,机能优化小组在重要备战1017版本机能攻关的同时,很好地保障了926版本的机能需求,使得926版本顺利上线,I项目PM也雅绫羌吐气了一把:在机能红线上,终于没有求爷爷告奶奶放一马了。在926版本上线后,一方面为表谢意,另一方面也为1017版本打气,PM宴请了小构成员,席间问起:
“黄工,就你来看,项目在SQL这方面还有多大年夜的优化空间?”
“这要看领到对机能的要乞降优化的决心了。”
“怎么说?”
“呃,黄工,如许可不可,如不雅真的是如许了,那你们干嘛呢?”
引导就是引导,不正面冲突,在轻描淡写中已经说清楚明了一切,而后来我在内部资估中看到“现固化,再僵化,后优化”的流程策略时,就更明白了。
【编辑推荐】
- 关于MySQL优化道理,你不得不知道的那些事儿
- SQL优化器道理 - Auto Hash Join
- MySQL数据库的“十宗罪”(附10大年夜经典缺点案例)
- 关于MySQL的SQL优化之覆盖索引
- 干货 | 一个MySQL 5.7分区表机能降低的案例分析
推荐阅读
对MySQL 技巧成长比较懂得的同伙肯定知道解决高并发的问题常用的手段就是“拆锁和移除锁”。 MySQL 8.0版本应用多个更细粒度的mutex代替buffer pool mutex这把大年夜锁。本文大>>>详细阅读
本文标题:限定两小时!一次由权限类型归集引发的紧急SQL优化案例
地址:http://www.17bianji.com/lsqh/38369.html
1/2 1