如何解读“过早优化是万恶之源”这句话
创始人
2024-12-17 02:22:19
0

数据库该怎么用其实也是一个争议挺大的话题,很多人可能会不理解为啥数据库还要那么用而不是这么用。因为每个用户的技术背景不同,团队的技术特点不同,开发团队的能力不同,所使用的数据库的技术能力特点不同,所使用的数据库管控平台不同,使用数据库的方式以及对数据库的技术要求也是不同的。

2006年左右,Oracle ACS的一个朋友找到我约一篇稿子,他希望我能写篇关于数据库优化越早越好的文章。当时约稿的目的是因为很多大客户的数据库应用搞得太不讲究,性能存在较大的问题,ACS的工程师在给客户做巡检的时候,需要花大量的时间帮用户解决一些十分低级的性能问题,他们认为这些问题原本是可以在系统开发时解决掉的。他们希望让用户在开发应用时多考虑考虑性能优化的问题,让Oracle能够用得更好,从而能够降低Oracle售后服务的压力。于是我写了一篇题为《应用系统生命周期和Oracle数据库优化》的文章,发表在《Oracle技术通讯》上了。

当时的小型机与现在的服务器相比,性能上差距很大,大多数企业用户使用能够的Oracle 9i与现在的Oracle也无法同日而语,因此那时候Oracle对于大用户还是不敢提SQL随便写这种 建议的,因此需要引导用户在系统建设前期开展优化工作。随着X86替代小型机以及Oracle数据库技术的不断进步,Oracle数据库的整体处理能力有了脱胎换骨的变化。大多数Oracle用户都可以更加自由地编写应用了,哪怕应用的质量不是很高,Oracle也能够尽可能让系统跑得能够使用。

对于一般的企业来说,业务才是生存之道,数据库只是辅助业务开展的一种IT基础设施,应该与服务器、网络设备一样简单。作为IT基础设施的数据库的这种进步,让那些系统数据量不是特别大,研发技术能力相对较弱的企业可以更加低成本地进行应用系统的研发,更加关注于业务本身。

与“系统优化从需求开发开始”的观念相反的是克努特优化原则 (Knuth's optimization principle)中提到的“过早优化是万恶之源”(实际上这句话最早是最早由Tony Hoare说的,只是在Knuth的书中第一次提到)。Knuth认为过早的把时间与成本浪费在过度精细的优化考虑上,会导致不必要的浪费,因为某些你担心的性能问题很容易在被发现后解决掉。

一个是2006年时Oracle ACS提倡的“系统优化从需求开始”,一个是2019年Knuth大师所说的“过早优化是万恶之源 ”,我们该如何判断哪个观点是正确的呢?其实你一旦在判断哪个观点是正确的 ,那么你已经陷入到错误的认知中去了。在不同的背景条件下,在不同的应用场景中,在不同的技术背景下,答案本身就是不同的。

Oracle ACS观点的背景是计算资源十分昂贵,研发团队技术能力不足,应用系统复杂而高聚合,应用开发迭代缓慢,缺乏敏捷开发能力。而Knuth观点的背景是开发十分敏捷,应用系统微服务化,计算资源在云上弹性获得,修复性能BUG十分快捷。在这两种不同的背景下,对于同一个问题自然就有不同的答案。

不过我还是觉得Knoth老爷子对这个问题的关键有些极端,其实我理解的这句话也是有场景的,指的是在开发过程中。他希望开发人员不要在开发初期“过早地考虑优化的问题 ”。而“系统优化从需求开始”是因为一些不懂IT的领导和用户提出一些对性能恶化影响甚大的需求来。比如一次查询可能涉及几十年时间窗口的数据,这必然会导致大数据量的扫描,消耗大量的CPU和IO资源,而限制最多查询一个月数据可以确保索引访问的高效性。

二十多年前一个系统上线第一天就崩溃了 ,我被紧急叫去帮助分析。后来我发现系统的首页上有大量的统计汇总数据,而且每隔一分钟自动刷新一次,而大多数用户使用完某个功能后都会退回到首页,因此整个数据库在不停地做统计分析。而这个明显不合理的设计居然源于某个平时压根不会使用这套系统的领导。

在三十多年的IT生涯中,我从一个总想把每件事搞个明明白白的小白变成了一个不太喜欢争吵的人,因为我明白每个人眼前的风景不同,每个人对美的定义不同,因此每个人都会说自己看到了最美的风景,对此无需争论。

相关内容

原创 ...
【文/搏击江湖】世界排名第1的扬尼克-辛纳在罗兰加洛斯心碎后,透露...
2025-07-22 21:20:32
原创 ...
据环球网报道,近期菲律宾部分退役军官反对总统马科斯亲美政策,直呼要...
2025-07-22 21:00:51
原创 ...
在军事界,F-22猛禽战斗机被广泛认可为当今最具卓越性能的空中战机...
2025-07-22 16:21:10
原创 ...
2023年1月24日,俄罗斯共产党主席久加诺夫在莫斯科国家杜马大厦...
2025-07-22 13:01:10
原创 ...
中国军工能够取得如今的显著成就,乌克兰专家的贡献是不可忽视的。上世...
2025-07-22 12:21:31
从漂泊少年到AI帝国掌舵者...
「AI人物志」旨在记录影响 AI 历史发展的关键人物,从他们在求学...
2025-07-22 11:21:28

热门资讯

存款利息怎么算?湖南农商行存款... 导读湖南农商行存款利息怎么算?湖南农商行作为湖南最大的股份制银行,它是一家地方性、集约化、国际化、股...
处暑节气如何做好养生?这些秘笈... 原标题:处暑节气如何做好养生?这些秘笈请收好 处暑的天气多变,可能给我们的身体...
原创 婴... 在宝宝的成长过程中,奶粉作为重要的营养来源,其选择至关重要。那么,什么样的婴儿奶粉比较好呢?奶粉的营...
原创 如... 肺是人体非常重要的器官,空气中的很多灰尘和垃圾都会随空气进入肺部,所以肺部的清洁是非常重要的。我们可...
金三角李国辉,率领三千残部打败... 原标题:金三角李国辉,率领三千残部打败泰国政府军,到台湾后结局如何? 解放战争...
新农保一年缴费180元60岁后... 导读新农保一年缴费180元,60岁后能拿多少钱呢?我们这一个月是208块。农村大多是买这种农保吧,刚...
孕妈检测出胎儿没有“胎心”究竟... 原标题:孕妈检测出胎儿没有“胎心”究竟为何?多半是这4种原因,预防下 昨天小樱...
激光术后护理指南:如何科学恢复... 二氧化碳激光是一种常用于去除瘢痕、色素沉着、皱纹和其他皮肤问题的治疗方法。它通过发射高能量的二氧化碳...
立春节气如何养生? 原标题:立春节气如何养生? 今天是2024年2月24日,阴历腊月二十五,今日立...
郑州银行大额存单利率:1、活期... 导读2022郑州银行大额存单利率一、存款利率:1、活期存款:0.3%2、整存整取:三个月1.60%,...