如何解读“过早优化是万恶之源”这句话
创始人
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生涯中,我从一个总想把每件事搞个明明白白的小白变成了一个不太喜欢争吵的人,因为我明白每个人眼前的风景不同,每个人对美的定义不同,因此每个人都会说自己看到了最美的风景,对此无需争论。

相关内容

原创 ...
2026年5月21日,人民海军发布的一则宣传片在全球军事圈掀起轩然...
2026-05-24 12:46:40
原创 ...
乌克兰无人机又一次击中了俄罗斯的炼油厂。 5月21日,萨马拉地区的...
2026-05-24 10:51:58
原创 ...
这一天,陈盈俊在篮球场上参加比赛,比赛刚开始,他的手感觉不好,投三...
2026-05-24 03:28:00
原创 ...
1941年冬季,苏联坦克设计师需要解决一个特殊的需求。 KV-2...
2026-05-24 02:51:07
煤矿瓦斯爆炸,为何如此严重...
中新网北京5月23日电(记者 李京统)2026年5月22日19时3...
2026-05-23 20:49:55

热门资讯

原创 如... 肺是人体非常重要的器官,空气中的很多灰尘和垃圾都会随空气进入肺部,所以肺部的清洁是非常重要的。我们可...
孕妈检测出胎儿没有“胎心”究竟... 原标题:孕妈检测出胎儿没有“胎心”究竟为何?多半是这4种原因,预防下 昨天小樱...
耳聋耳背知识分享-----耳朵... 耳朵听力下降恢复方法首先要找出听力下降的病因,其次针对病因进行对症治疗。 耳朵听力下降,如何恢复听...
激光术后护理指南:如何科学恢复... 二氧化碳激光是一种常用于去除瘢痕、色素沉着、皱纹和其他皮肤问题的治疗方法。它通过发射高能量的二氧化碳...
如何有效应对低血压问题,提升生... 血压低,这个问题在生活中并不罕见。很多人可能会觉得,血压低就像是个小毛病,不用太在意。但实际上,低血...
郑州银行大额存单利率:1、活期... 导读2022郑州银行大额存单利率一、存款利率:1、活期存款:0.3%2、整存整取:三个月1.60%,...
孩子自控力差?家长如何引导培养 孩子自控力差?家长如何引导培养 在孩子的成长过程中,自控力是一项至关重要的能力。它关乎孩子的学业表现...
原创 婴... 在宝宝的成长过程中,奶粉作为重要的营养来源,其选择至关重要。那么,什么样的婴儿奶粉比较好呢?奶粉的营...
原创 高... 《水浒传》中,那些绿林好汉多半是不近女色的,比如晁盖登场时,书中就提到这么一句。 “那东溪村保正,姓...
存款利息怎么算?湖南农商行存款... 导读湖南农商行存款利息怎么算?湖南农商行作为湖南最大的股份制银行,它是一家地方性、集约化、国际化、股...