引言
熟悉我的朋友知道我擅长SQL优化,2017年出版过近80万字的技术书籍——《收获,不止SQL优化》,十余次印刷,反响热烈,在此,感谢支持我的读者。接下来,我将站在
SQL优化思想的角度,给大家做一个系列分享。

首先就是要有
批判性思维
,我将告诉大家:
不优化或许是最好的优化!
故事从L老师的一次优化经历说起,希望给大家带来新的启发。
Q:L老师,自从您为XXX平台做了SQL优化后,运行非常顺畅,您是做了大量改写吗?
W:老师,难道您调整了表结构,比如建分区、分片键、或者调整字段类型?
L:各位,我知道你们很惊讶,其实,优化SQL和很多其他事情是相通的,比如
企业会定期评估员工绩效,对表现不佳的员工进行有针对性的指导,帮他们
优化自身能力,以更好地胜任工作。这和SQL优化就有些类似。
Q:
一个针对SQL,
一个针对员工,都是优化。有意思,L老师,您给我们展开说说吧。
1
L:
嗯。
小A是一个绩效不佳的员工,原因是一直没法拓展新客户。
老板
老K却觉得他能力不足,不断督促他学习提升。
可是,在与小A接触后,我发现他已经非常努力,把
大部分业余时间都投入到提升业务技能上,而且他的能力并不差。那么,为什么他无法胜任工作呢?
L:不是工作难,而是
小A所做的方向已经被市场淘汰了。我当即对老K说,这事换谁做都一样,即便您老K来做,也不会好。其实该提升的不是小A,而是老K您啊。
L:回到XXX平台的SQL优化案例,该平台的A模块有一类SQL大家束手无策,改写多次仍无法优化。我通过分析这些SQL的日期条件逻辑,判断出它们大概率可以直接下线。
经确认,这些SQL确实多余,于是果断删除,问题解决!
W:厉害!
从SQL的必要性角度思考问题
,确实是一种批判性思维,受益匪浅。
L:是的。回到小A的故事,之后老K舍弃了这个业务方向后,
小A转做其他工作,其表现大幅提升,成为公司的优秀员工。
L:小B也是低绩效,其原因是工作效率太低。但我见到小B时,觉得他思路清晰,手脚利索,不像不思进取的员工。然而,深入了解后,我才明白原因。
L:小B所在的部门办公地点偏僻,办公设备简陋,这导致每个人的工作效率都因此降低,只是小B太年轻没经验,显得更糟一些罢了。这次的问题依然在老K身上。
W:原来小B是被冤枉的。
L:回到XXX平台SQL优化案例,该平台的B模块有一类SQL,无论怎么优化都快不了。就在大家一筹莫展之时,我发现
这些SQL所在的主机资源极其繁忙,系统的压力巨大,任何SQL在这种环境下都难以提升,进一步调查后,了解到主机上有很多进程可以迁移到其他主机,于是火速迁移,结果这些SQL运行速度飞升。
Q:我明白了,
解决问题还是要先看全局啊
。
L:是的。回到小B的故事,之后
老K改善了小B部门的环境
,
小B工作效率迅速提升,很快便成为了公司的核心骨干。
L:最后说说小C,他低绩效的原因是工作时常出错。经过交流,我发现小C根本不是一个粗心大意的人。后来才明白了真相。
L:小C每天要与近百个客户对接,任务繁重,难免会忙中出错。
L:回到XXX平台的SQL优化案例,该平台的C模块有一批SQL难以优化,且每天执行次数达千万次,消耗大量主机资源。调查后发现这是
每分钟一次的采集工作。经过深入分析业务,确定可将其调整为
每天采集一次,于是SQL执行次数立降千倍,系统负载大幅减少,性能显著提升。
Q:出乎意料啊!居然想到
质疑
需求背后的
合理性,看来
没有什么是不可以改变的。
L:是的。回到小C故事,之后老K通过协商
,让小C从对接每个客户变成只对接客户的总接口人。很快,
小C每天只需对接十多人,时间得到了极大节省,工作质量也大幅提升了,
不久就被提拔为部门经理。
结语
“
不优化或许是最好的优化!”—— 强调以
批判性的思维
从源头解决问题。看似什么都没做,实则
通过
必要性、全局性、合理性的分析,早已将SQL优化的效果拉满。
万事相通,
SQL优化与员工优化在本质上并无差异。正如那些SQL的问题不在SQL本身一样,
小A、小B、小C他们的低绩效原因,也不在于他们本身。
本文提到的
平台优化与员工优化皆为真人真事
,希望能
给大家带来启发。
下一集开始,我将带领大家
基于SQL优化的思想
,一步一步推导出完善的
SQL优化方法论
,敬请期待!
公众号:收获不止数据库
原文作者:收获不止数据库;如有侵权,请联系管理员删除。