前几天,我偶然发起了一个简单的投票,出人意料的有1150多位朋友投票,形成了一组可以借鉴的数据。
注意,这个投票只是一个简单的“认知性”数据,我觉得仅仅能够代表投票者对于这些数据库和开源的关联度的认知。我并不认为投票者都使用过这些数据库产品(TDengine属于乱入,我不应该写在这里,因为我的公众号读者多数属于关系型数据库的范畴)。
投票结果的前三名:TiDB(483票,31%)、openGauss(378票,24%)、PolarDB(309票,20%)。
在这前三名当中,TiDB属于分布式,openGauss属于集中式,PolarDB开源了2款软件,PolarDB-PG是集中式,PolarDB-X是分布式。大众对于一个产品定位的认知,更多的是靠宣传。好的宣传和传播对于产品成功意义重大。数据库领域的图灵奖得主迈克尔·斯通布雷克(Michael Stonebraker)曾经在文章中提到:永远不要低估良好营销对糟糕产品的价值。数据库市场竞争激烈且利润丰厚,这促使供应商声称他们的新技术将解决各种问题,每个在数据库上挣扎过的开发人员都特别容易接受这样的营销。
劣质的DBMS产品通过强大的营销成功:Oracle在1980年代这样做了,MySQL在2000年代这样做了,MongoDB在2010年代这样做了。这些系统在早期获得了足够的关注,为他们赢得了时间来弥补工程债务。
斯通布雷克提到的良好的营销对于早期的产品实属生死攸关,只有获得足够的关注,才能赢得时间,最终让产品完善站上巅峰。
Oracle、MySQL、MongoDB 都是一个时代的典范。其实回顾历史在Oracle的时代之后(同时代的产品包括IBM DB2、Microsoft SQL Server),几乎没有商业数据库能够“有机会”挑战其王者地位。
开源数据库是一个例外,MySQL、PostgreSQL通过开源的方式获得了长久的影响力,在数据库的历史上占据了一席之地。
那么,很多朋友在问一个问题:国产开源数据库应该如何选择?
数据库产品的成功最重要的是生态的构建。开源数据库尤其如此。只有通过广泛的社区影响力、吸引一批开发者(不能只由发起者主导)、造就一批从业人才、获得广泛的用户采用,才有可能让社区运行下去,让开发者和生态伙伴存活下去。MySQL在中国的流行就是因为互联网培养了人才,并随之将MySQL带入更多的企业环境。PostgreSQL正是因为缺少了这样一个基本盘和阵地,才缓慢崛起。

2. 任何开源产品都需要看其动机,如果动机不成立投入不持久,那么产品就不会有未来。有网友说,只要源代码开放,可编译运行就算是开源。诚然,但是如果没有良好的生态建设投入,只是为了开源而开源,那么用户是无法放心使用的。3. 开源数据库一定是以社区版为主要应用的形态。如果开源遮遮掩掩半推半就,产品以商业销售为主,开源只是为了做一个长尾的弥补,那么这样的产品也很难让用户真正以开源对待和使用。
《数据库简史》一书中引用了斯通布雷克谈及 PostgreSQL 的一段话,他说:一个由志愿者组成的团队,其中没有一个人与我或伯克利分校有任何关系,从 1995 年起就一直在开发这个开源系统。网上的 Postgres 系统就来自这个团队。这是开放源代码的精华所在,我只想说,我与这一切毫无关系,我们都应该对这群人表示衷心的感谢。
开源理想与精神影响和改变了世界,这是伟大的变革。中国的开源数据库其实也才刚刚开始,TiDB 于2015 年开源、openGauss 于2020年开源、PolarDB 于2021年开源、OcenBase于2021年开源。中国的开源产业需要持续的投入,唯有坚持,方能始终。从长期看,选择国产开源数据库,我认为主要看:产品生态、开源动机、应用形态。
长按,识别二维码,加入万人交流社群
请备注:云和恩墨大讲堂