梁敬彬梁敬弘兄弟出品
1.1 优化方法论
1.1.1 小余买鱼系列故事
小余买鱼1—诊断与改进
全文就从一个生活中的小故事开始吧,故事的名字叫:《小余买鱼1》 :
一天下午4点多,小余妈妈想做水煮活鱼给家人吃,让小余去买一只草鱼回来。小余骑自行车到10公里外的沃尔玛超市买到鱼然后返回。一到家,妈妈就开始责怪小余买鱼的时间花的太长了,因为都已经是下午6点半了,晚上7点一家人都安排好了外出的活动了,这下做水煮活鱼来不及了。。。。。《小余买鱼1》说完了,好听吗?(喂,兄台,别砸别砸,鸡蛋很贵的。。。。。。)。
虽然看上去这个故事似乎既没内容又不精彩,但是在我看来,ORACLE的优化思想、方法论却在这个小故事中展现的淋漓尽致。你看出来了吗?
不明白?让我们慢慢展开分析。
很明显妈妈对小余买鱼的工作效率不满意(导致她做鱼的时间都没了),问题出在哪呢?小余是个聪明的孩子,善于思考,这次挨批后,他想好好反省总结一下,避免将来再犯同样错误而再次挨批。
他想诊断环出问题出在哪个环节,为此他得先思考具体都有哪些环节,这就是:将过程细化。
小余回想买鱼经历后,将整个买鱼过程做了细化,具体哪些环节马上出来了:
- 骑车来回往返
- 银行排队取钱
- 在超市里找买草鱼的地方
- 其他时间开销(如取自行车、停车、接电话等等)
接下来他很自然的将思绪飘落到如下之处:
找细化项主要矛盾(开销最大的部分)
依次分析各细化项的开销:
- 骑车来回往返花费 90分钟
- 钱不够,去银行取钱排队花费了 20分钟
- 在超市里到处找买草鱼的地方,这些动作花费了 20分钟
- 其他时间花费了(如取自行车、停车、接电话等等)。 5分钟
小余猛一拍脑袋,重大突破来了,主要时间开销在买鱼往返途中,主要矛盾在这!如果能大幅度缩短往返时间,必然能让妈妈少等许多时间。
小余接着开始考虑怎么优化改进,从而解决问题。他脑海瞬间闪过一点:妈妈让我做什么事?这就是:准确理解需求。
妈妈的需求是什么呢?一句话:需要买来草鱼做晚餐 。妈妈并没有要求小余一定要在哪买鱼,只要能买到,就满足妈妈的需求了。小余意识到自己犯了一个很低级的错误,他缺乏下面一个意识:尽量少做事甚至不做事完成需求。
在妈妈没有要求在哪买鱼的情况下,小余去了20里外的超市买鱼,小余忽然觉的自己是不是有点傻了。
20里外的地方是他学校,平时上学时他留意到附近有一家大超市,同时他无法确定自己家附近是否有可以买到鱼的超市,这正是他要去如此远的地方买鱼的原因。
如果家附近能买到鱼而选择去10公里以外的超市买,不是多做事完成同样的需求了?
小余意识到明确自己家附近能否买到鱼,将是处理问题的关键!经过自己的调查研究,他发现自己家附近真有可以买到鱼的农贸市场,虽然农贸市场很小,但是不影响自己完成买鱼的任务,专业的说法是,并不影响需求的实现。
他开始特别懊悔自己预先不问问妈妈或者其他知情人,否则这90分钟的往返路程可是完全可以缩短为是十几分钟哦。
一周后妈妈又要做水煮活鱼了,小余就在楼下附近农贸市场买了鱼,这次他没再让妈妈等太久,妈妈对小余买鱼的效率非常满意。
到此问题圆满解决了,小余冷静思考生活中的小事,总结出了诊断问题和解决问题的方法论如下:
小余成长了许多!生活和技术是相同的,生活如此,ORACLE优化也是如此!
未完待续…
小余买鱼与数据库优化【二】需求与设计
系列回顾
“大白话人工智能” 系列
“数据库拍案惊奇” 系列
“世事洞明皆学问” 系列
三分钟讲述个人感悟——感恩,回馈