小余买鱼与数据库优化【一】诊断与改进

梁敬彬梁敬弘兄弟出品

可参考——SQL优化思想1-2-3(原文链接)

1.1 优化方法论

1.1.1 小余买鱼系列故事

小余买鱼1—诊断与改进

全文就从一个生活中的小故事开始吧,故事的名字叫:《小余买鱼1》 :

一天下午4点多,小余妈妈想做水煮活鱼给家人吃,让小余去买一只草鱼回来。小余骑自行车到10公里外的沃尔玛超市买到鱼然后返回。一到家,妈妈就开始责怪小余买鱼的时间花的太长了,因为都已经是下午6点半了,晚上7点一家人都安排好了外出的活动了,这下做水煮活鱼来不及了。。。。。《小余买鱼1》说完了,好听吗?(喂,兄台,别砸别砸,鸡蛋很贵的。。。。。。)。

虽然看上去这个故事似乎既没内容又不精彩,但是在我看来,ORACLE的优化思想、方法论却在这个小故事中展现的淋漓尽致。你看出来了吗?

不明白?让我们慢慢展开分析。

很明显妈妈对小余买鱼的工作效率不满意(导致她做鱼的时间都没了),问题出在哪呢?小余是个聪明的孩子,善于思考,这次挨批后,他想好好反省总结一下,避免将来再犯同样错误而再次挨批。
他想诊断环出问题出在哪个环节,为此他得先思考具体都有哪些环节,这就是:将过程细化。

小余回想买鱼经历后,将整个买鱼过程做了细化,具体哪些环节马上出来了:

  1. 骑车来回往返
  2. 银行排队取钱
  3. 在超市里找买草鱼的地方
  4. 其他时间开销(如取自行车、停车、接电话等等)

接下来他很自然的将思绪飘落到如下之处:

找细化项主要矛盾(开销最大的部分)
依次分析各细化项的开销:

  1. 骑车来回往返花费 90分钟
  2. 钱不够,去银行取钱排队花费了 20分钟
  3. 在超市里到处找买草鱼的地方,这些动作花费了 20分钟
  4. 其他时间花费了(如取自行车、停车、接电话等等)。 5分钟

小余猛一拍脑袋,重大突破来了,主要时间开销在买鱼往返途中,主要矛盾在这!如果能大幅度缩短往返时间,必然能让妈妈少等许多时间。

小余接着开始考虑怎么优化改进,从而解决问题。他脑海瞬间闪过一点:妈妈让我做什么事?这就是:准确理解需求

妈妈的需求是什么呢?一句话:需要买来草鱼做晚餐 。妈妈并没有要求小余一定要在哪买鱼,只要能买到,就满足妈妈的需求了。小余意识到自己犯了一个很低级的错误,他缺乏下面一个意识:尽量少做事甚至不做事完成需求

在妈妈没有要求在哪买鱼的情况下,小余去了20里外的超市买鱼,小余忽然觉的自己是不是有点傻了。
20里外的地方是他学校,平时上学时他留意到附近有一家大超市,同时他无法确定自己家附近是否有可以买到鱼的超市,这正是他要去如此远的地方买鱼的原因。

如果家附近能买到鱼而选择去10公里以外的超市买,不是多做事完成同样的需求了?

小余意识到明确自己家附近能否买到鱼,将是处理问题的关键!经过自己的调查研究,他发现自己家附近真有可以买到鱼的农贸市场,虽然农贸市场很小,但是不影响自己完成买鱼的任务,专业的说法是,并不影响需求的实现。

他开始特别懊悔自己预先不问问妈妈或者其他知情人,否则这90分钟的往返路程可是完全可以缩短为是十几分钟哦。

在这里插入图片描述
一周后妈妈又要做水煮活鱼了,小余就在楼下附近农贸市场买了鱼,这次他没再让妈妈等太久,妈妈对小余买鱼的效率非常满意。

到此问题圆满解决了,小余冷静思考生活中的小事,总结出了诊断问题和解决问题的方法论如下:
在这里插入图片描述
小余成长了许多!生活和技术是相同的,生活如此,ORACLE优化也是如此!

未完待续…
小余买鱼与数据库优化【二】需求与设计

系列回顾
“大白话人工智能” 系列
“数据库拍案惊奇” 系列
“世事洞明皆学问” 系列

三分钟讲述个人感悟——感恩,回馈

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

收获不止数据库

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值