聊到 IBM Db2 这个数据库,很多人第一反应是“古董”“贵”“难用”。但如果你在银行、保险或大型国企的 IT 部门待过,就大概率绕不开它。我有个朋友在四大行之一做核心系统运维,他说他们那儿跑了几十年的交易系统,底层就是 Db2。每天早上九点开门,全国几万个网点的存取款、转账、理财,全压在这套系统上。Db2 最牛的地方不是快,而是稳——稳到让你忘了它的存在。别的数据库偶尔崩一下,重启就完事;但银行的核心系统,宕机一分钟就是天大的事。所以别看现在开源数据库满天飞,在那些真正要命的地方,Db2 仍然稳坐交椅。

Db2 的历史长得吓人。它 1970 年代就出生了,比很多程序员父母的年龄都大。那时候 IBM 搞出了关系型数据库的概念,随后研发了 System R 原型,Db2 就是它的商业化产物。最初它跑在 IBM 的大型机(z/OS)上,后来才移植到 Unix、Linux、Windows。想想,四十多年的迭代,代码量有多庞大。我听说过一个段子:IBM 内部有位老员工,专门维护 Db2 的 SQL 解析器,他那部分代码写了一辈子,退休时交接文档写了三百页,却只涉及一个小模块。这种积累不是钱能砸出来的,而是靠时间熬出来的。所以很多金融老系统,想换也换不掉——代码里埋了多少边界条件、多少历史补丁,换个数据库可能全盘崩溃。
但 Db2 也有它的麻烦。最大的问题就是贵。IBM 的授权费是按 CPU 核数算的,一个核心一年几万美金,大型机上的更贵。我认识一位中型企业的 IT 负责人,他们用 Db2 跑 ERP 系统,每年光数据库授权费就占 IT 预算的 15%。他吐槽说,每次老板想上新项目,他第一反应不是看技术行不行,而是算一下 Db2 的 License 够不够用。更坑的是,Db2 的运维门槛高。懂 MySQL 的人很多,但能搞定 Db2 的 DBA 市场上凤毛麟角。很多企业被迫养着几个老专家,年薪比技术总监还高,只为系统出问题时能第一时间解决。这种成本,小公司根本扛不住。
所以你会看到,Db2 的市场这些年一直在收缩。互联网公司几乎不用它,创业公司更不会碰。阿里、腾讯的数据库团队,早年也是从 MySQL、Oracle 起步,后来自己搞分布式数据库。Db2 在互联网江湖里的存在感越来越弱。但有个有意思的现象:每次 IBM 发布财报,虽然 Db2 整体收入下滑,大型机上的 Db2 却在增长。为什么?因为那些跑了几十年的银行核心、保险核心、政府社保系统,它们不追求时髦,只追求“不出事”。这些系统的数据库里,存储的不只是数据,更是企业几十年的业务逻辑和流程规则。让它们迁移到分布式数据库?先不说技术难度,光合规审计就能把项目拖死。所以 Db2 在存量市场里,活得还挺滋润。
最近几年,IBM 也急了。它意识到光靠大型机吃老本不行,开始推 Db2 的云版本,比如 Db2 on Cloud 和 IBM Cloud Pak for Data。我试用过一次,感觉就是“IBM 式”的云化:功能堆得很全,但上手体验比起 AWS 的 Aurora、Google 的 Cloud Spanner 仍差一截。比如在 Db2 云上建表,得先理解缓冲池、表空间、分区键等概念,而 Aurora 只要点几下鼠标就能跑起来。IBM 的工程师思维太重,总觉得用户应该先读三天文档再动手。这年头谁有那耐心?因此 Db2 云化喊了几年,市场反响一直不温不火。不过说回来,那些已经在用 Db2 的企业,迁移到自家云上倒是顺理成章,毕竟架构兼容,不用改代码。
另一个值得一提的点是 Db2 对 AI 的拥抱。IBM 这几年拼命推 Watson,Db2 也跟着沾光——推出了 Db2 AI for Data,号称能用机器学习自动优化查询。比如你写了个慢查询,系统会自行分析执行计划,建议加索引或改表结构。我见过一个案例:某保险公司用 Db2 跑核保系统,每天有几十万条保单查询,原来 DBA 每周要花一天时间手动调优。上了 AI 功能后,调优时间缩短到半小时,而且系统还能持续学习。但说实话,这功能目前还比较初级,更多是锦上添花。真正复杂的调优场景,如跨表关联、复杂聚合,AI 仍搞不定。IBM 把 AI 当卖点,但用户买不买账,还得看落地效果。
说点我个人的观察。Db2 现在最大的挑战不是技术,而是生态。MySQL 有全球几百万开发者贡献插件、工具、文档,PostgreSQL 有强大的开源社区,Oracle 有庞大的 DBA 社群和第三方支持。Db2 呢?用户群体越来越封闭,圈子越来越小。你在 GitHub 上搜 Db2,项目数量根本比不上 MySQL。年轻一代程序员几乎没人愿意学 Db2——学了也没有地方用,互联网公司不认这个玩意儿。IBM 如果不解决这个问题,再过十年,等现在这批老 DBA 退休,Db2 可能会陷入“有系统没人会管”的尴尬。所以 IBM 推出了 Db2 Community Edition,免费给开发者使用,还开放了部分源代码,想培养新生代用户。但实话说,和开源数据库十几年的积累比,这动作已经有点晚了。
不过话说回来,Db2 就像 IT 界的“老钱”——不显山露水,但关键时刻真能扛事。你去看那些百年银行的核心系统,代码里可能还跑着 1980 年代写的 COBOL 程序,底下的数据库就是 Db2。这种系统不会死,只会慢慢老去。它不需要讨好所有人,只需要服务好那些最挑剔的客户。因此 Db2 的未来,大概率会是一个“小而美”的高端玩家——客户越来越少,但每个客户都离不开它。就像瑞士银行,不做大众生意,但一笔就是大单。对普通开发者来说,你可以不喜欢它,但千万别小看它。毕竟,并不是每个数据库都能扛住四十年不间断的交易洪流,还能保证一分钱不算错。


