优化前置思想的成本收益关系

有朋友在后台问上周分享中这张图的关系,在这简单说说,

P.S. 分享链接,

感悟线上分享

技术分享邀请

这块的上下文,是说我们倡导培养“优化前置”的数据库设计开发思想,道理其实都懂,像隐式转换、不必要的全表扫描,都是可能的风险,但是这些问题,在开发测试阶段,如果背景数据量很小,如果单纯靠白盒测试,可能发现不了任何的问题,功能都是正常的,然而一旦上生产,数据量上来了,就可能直接影响业务的处理能力,非常被动。

对这类的问题,无论是改数据库的结构定义,还是做程序改造,如果是在投产阶段发现的,严格意义上,就需要各种测试、跑上线的流程、上线窗口的操作、验证测试等环节,都得有个过程,人力、物力,时间,都得消耗,成本很高。往往这种问题,并不难改,加个函数、改个类型,如果这个问题是在设计开发测试阶段发现的,可能放在某个开发迭代中就可以解决,成本很低,但是相对来讲,收益就会很高,典型的事半功倍。

对这类问题的解决应该有两个路径,

1. 开发人员在编码过程中,要提前注意这些问题,有意识地避免可能的风险。要做到这个,要么是开发人员的经验,这个因人而异,不可控,要么就是有技术规范,参照规范编码,显然只是有规范,不能做到闭环,还得有规范验证的手段,参考规范-验证规范执行-反馈更新,形成闭环,才可能让代码尽可能地向规范靠前,避免潜在问题。

2. 通过技术手段,主动挖掘风险,像代码扫描工具(《阿里的Java开发规范插件验证》)、数据库审核平台,甚至是代码review,这些都是为了主动发现编码、数据库结构定义中的问题,将他们和流水线、软件开发过程相结合,发挥更大的作用,是我们所要面临的问题。

“优化前置”的思想,其实不仅针对数据库开发,对于其他的领域,都是适用的,道理显而易见,但是实操起来,就未必能做到了,这个不是一蹴而就的事情。

近期更新的文章:

v$视图存储SQL的bug

RPO和RTO是什么?

最近碰到的几个问题

Linux的inode是什么?

小白学习MySQL - InnoDB支持optimize table?

文章分类和索引:

《公众号800篇文章分类和索引

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值