PostgreSQL 的优秀,你真的懂吗?

John Doe 十一月 28, 2023

应用软件厂商选择一款数据库时,什么是最关键的考虑因素?

scenery

数据库产品的关键要素:稳定先于发展

最关键的因素,就是这款数据库是不是主流,能否长期发展,语法和接口是否稳定。数据库产品是应用软件的基础,有如一座大厦的地基,地基最重要的就是长期稳定。既要稳定又要发展,这一点并不容易做到,需要极其精细和严谨的设计,架构师需要坚守稳定先于发展的基本原则。

其实,成功的基础软件产品基本上都是奉行稳定先于发展的基本原则,比如 Linux、Java。破坏该原则出现的失败案例也很多。Python 2 发展到 Python 3 就破坏了接口的稳定性原则,对使用 Python 的用户和应用造成了极大的影响,这是一个非常经典的失败案例。

开源数据库的发展策略

开源数据库在发展初期,一般功能都会简单粗糙,它需要通过开源开放,初期吸引一些极客和大学研究生,再吸引开发者和产品用户,逐步积累一定规模的用户基数。有了一定规模的用户基础,社区保持足够的中立和开放,才能让商业公司有利可图,才能吸引到优秀的开发者加入进行贡献。

有了群众基础就可以获得品牌传播,从而可以拓展到高端客户,有点类似于农村包围城市的策略。想想为什么 Oracle 需要推出 Express 版本?其实也是为了扩大用户基数。

那些认为 PostgreSQL 不过如此的人,往往都比较肤浅,要知道论影响力的话,你做的数据库产品与它比起来,就是萤火在与日月争辉。

数据库市场的制胜关键:产品开放性

作为一个技术工作者,我也曾天真的认为,基础软件产品的技术一定要足够先进,才能在市场中获得成功。实际情况并不是这样。

90 年代的时候,在服务器操作系统市场上,IBM 的 AIX 和 SUN 的 Solaris,技术都是相当先进的。相比起来,那时候,Linux 还只能算是一个“玩具”,采用的 EXT2 文件系统不支持记录日志,无法保证数据的可靠性。CPU 调度只支持单线程,多并发都是用一把大锁进行管理的。最后的结局,大家都看到了,前者几乎销声匿迹,后者绝对地统治了服务器操作系统市场。

在数据库市场上,也在上演同样的剧情。90 年代到 21 世纪初,是商业闭源数据库繁荣发展的时候。那个时候,Oracle、DB2、SQL Server、Sybase、Informix,都是市场上很有竞争力的产品。MySQL 直到 5.5 版本,才将 InnoDB 作为默认存储引擎,之前采用的 MyISAM 连事务都不支持。现在,Informix、Sybase、DB2 已经呈现明显的衰落,而 PostgreSQL 和 MySQL 为代表的开源数据库,早已经深入应用到各行各业。

我相信现在,在数据库市场上,微软和甲骨文已经意识到了这一发展趋势,且拿不出来有效的应对策略。微软已经投入资源参与 PostgreSQL 社区进行贡献了。甲骨文也在自家云服务平台提供 PostgreSQL 服务了。虽然这种支持的力度可能不大,但这是一种很明显的态度转变。