1.2 知名产品
目前看国产数据库主要和3~5种数据库有较深的渊源。这里的渊源包括相似度或者就是代码的高度复用,或者就是换个皮肤,具体什么类型的渊源,需要看具体的产品而定。
oracle系
- 首推达梦,这是因为大梦大概在本世纪初就开始仿制oracle。它们主要是外在类似oracle,无论开始的时候它的代码来自什么,现在应该是很纯净了,这是我相对佩服达梦的地方。
这多少说明达梦是来真的。
达梦的外在和oracle十分相似,甚至某些情况下,应用直接迁移问题也不大,因为二者的字段类型、系统表、系统视图、逻辑结构、物理结构都什么相似,甚至是基本一样。从用户迁移的角度出发这是一大利好。
- 其他-人大金仓、南大通用都有兼容oracle的版本,据说gauss之类也有兼容oracle的版本
兼容orale是国产数据库需要首先考虑的路径,因为以往Oracle几乎一统天下,现在如果要切换,那么无疑迁移到兼容oracle的数据库中成本是最小的,工程师也最高兴。
mysql系列
这个比较多,有阿里、腾讯、华为、百度等等。
- 阿里: ocenbase for mysql
- 腾讯:tdsql
- 华为:gaussdb for mysql
- 百度:doris,GaiaDB
- 其他小厂商略-这些小厂商缺乏足够资金和人才,不知道做这个图什么
pg系列
这个也巨多,因为和mysql一样,居于开源的pg容易开发自有的。
- 阿里: rds,polar for postgresql
- 腾讯:tdsql for pgsql
- 华为:gaussdb for pgsql
- 其他小厂商略
informix等
需要特别提一下,这是因为南大通用常常处在榜单前列。informix非常小众。
1.3自研成分
由于本人不可能得到这些大厂的源码,除了部分开源的。所以如果企图从仅仅从源码来判断自研成分必定是不可靠。
在研究上,有一种技术称为间接测量。例如我们测量大树的高度,在不爬树,砍树的情况下,可以通过阴影来测试其大概的高度。
同样地,我们可以通过以下几个间接的指标来判断各个数据库的自研成分:
- 开始研发时间
这个标准并不可靠,但可以作为参考。
理论上一个数据库如果仅仅是几年就开发出来,那么基本上是以“借鉴”为主。至于借鉴了多少,那么需要看看公司的实力和产品的结果
我们都知道,数据库研发的成本是非常之大的,基本不是一个小公司短期内可以做到的,除非这个小团队成员以世界范围内天才和精英为主。如果你告诉我这个团队就是几十到上百人几年内搞好,我不会相信的。
当然,如果仅仅是自嗨,或者只是为了满足非常特殊的业务场景则另当别论。
常识告诉我们,如果一款数据库产品要面向大众,那么一般需要满足:精英级别的团队、较长的研发时间、至少在不上的业务场景中测试过
所以,我的结论是时间可以作为一个参考,某些情况下是很重要的指标。
以这个考量达梦,应该是可以相信的。
此外,华为自研的时间也比较长,大概有10来年,另外基于其特殊的基因,还是比较可信的。 不过在官网上,华为自己说“基于20余年战略投入、软硬全栈协同所研发,核心代码100%自研,是企业核心业务数字化转型的坚实数据底座,给世界一个最优选择”
- 所基于的开源代码
凡是基于mysql,pg的数据库基本上自研的成分大概介于0.5%~60%左右。
国内厂商,自研的成分大概就是以下几种情况。
(1) 0.5%左右的主要就是换个标题和门面之类的。这个估计占据了一部分
(2) 修改几个工具的,此类自研占比大概最多10%左右。它们基本不动核心,以便能够快速根据开源更新核心代码,更上技术前言。
(3) 花了一点心思的。例如创造了几个无关紧要的名词概念、添加一些无关紧要函数的,或者施展一些障眼法。
(4) 真花了一番心思,但也仅仅限于在分布式、高可靠、维护性方面推出一些功能
(5) 花费大力气的,大部分绝大部分都是自己写,或者是抄写(用另外一个语言翻译下之类的)。走上这条路之后,基本就不可以回头,因为我们都知道回头的代价是多大
据说少数也有80~90%,例如tidb,gausedb,doris等。
(1)tidb
tidb因为以htap为主,所以对mysql得依赖主要在于语法和单实例的核心上,自创的应该居多。我们都知道数据库要支持大存储大并发并不容易,必须要在分布架构、底层存储、网络通讯之间花费一番功夫。
所以tidb的自研成分应该还是有一些的。
但是鉴于mysql自己也有分布式版本,所以不好说借鉴了多少。
(2)gausedb
这个听华为自己说是改用其他语言重写了。
(3)doris、tidb等
doris类似tidb,都是基于mysql开发,不过前者仅仅重在o而已。从个人经验猜测,应该改得不会有那么多,毕竟它子需要考虑o而不考虑t。修改的时候应该兼有阉割和创新。
- 新功能
这个方面,关系数据库基本没有什么大亮点,所以主要是no-sql,new-sql会有些亮点。
当然关系数据库方面也不是完全没有亮点(注意以下这些亮点个人没有证实过,仅仅是厂商官网介绍摘取的):
国产数据库有个很重要的工作要做:适配国产硬件(主要是cpu)和国产操作系统(各种基于linux的操作系统,例如麒麟,UOS;鸿蒙)
- 公司的构成和实力
华为、百度、阿里、腾讯等自然是第一梯队;达梦、人大、南大等大体是第二之类,其他等而下之。
从综合实力看,华为的实力应该最为强劲,因为华为最有钱有人,还有一点干实事的精神。从长远看,想干实事,能干实事这个反而是极其重要的。
以下是我个人目前认为自研比率较高的国产数据库:
- 达梦
- 华为gause
- tidb
至于大厂门基于mysql,pg研发的大体也还行,但多是在分布式和高可靠上下了一些功夫,加法居多,对最核心的没有什么改动(可能也不够准确,毕竟我没有源码).。
国产化要不要从新开始研发?我和大部分场上的想法一样:没有那个必要。 只要真心博采众长,努力向上就可以。
1.4如何发展数据库
天时地利人和缺一不可,现在国产数据库的机会来了,目前大家天时地利差不多,毕竟国产化是不可逆的趋势。 关键看人和。
- 凡是挖社会主义墙角的,不要信它
- 凡没有什么资金和人力的,不要信它
- 凡是吹牛的不要信它
- 凡是不开源的,卖东西都要遮遮掩掩的,不要信它
按照以往的经验,除了企业自身要努力,一个很关键的是要构建足够好的社区,甚至是开源。
如果企业能够主动构建社区,主动和消费者亲近,而不是遮遮掩掩,那么还是有希望的。
如果一个企业不愿意推出开源版本(社区版本),那么也不容易获得更多小厂商或者程序员的喜爱。没有程序员的喜爱,那么推广也不容易。当然如果认为走上层路线行得通,据不用考虑这个。
比如我们要体会一个数据库软件,但是它只有试用版本,而且试用期限大概是3个月份到半年、也有一年的,但是到期后要续命就麻烦了,那么作为工程师自然不是那么乐意。
工程师会想:如果不是因为国产化,我凭什么要花费时间去研究这些,还那么麻烦,还不太好用。
所以,按照个思路,那么一定是大企业胜出,因为它有足够的业务和资金来开源项目,并通过开源占领社区和市场。
当然,在中国,什么情况都有可能。只是按照常理,理应如此。windows、office、oracle、mysql、spring、安卓占领天下不都是这个套路吗?
有钱的机构自然愿意购买企业版,而没钱的程序员和小企业自然愿意使用免费的。所以企业如果不能以其他方式占领市场,那么就应该走这一条路:开源+商用,这也是世界范围内的实践。
国内的市场比较大,国产数据库主要在几个地方下功夫:
- 党政军核心机构 -- 赚钱的大头。还可以细分机密等级
- 一般事业单位 -- 赚钱大头
- 国企央企 -- 赚钱大头
- 民营 -- 不好赚钱
- 个人 -基本不要想,老百姓就想白嫖
数据库企业不能光想着拉拢要员或者地方诸侯,赚得了一时,赚不了一世。还是需要通过开源环境来检验和完善自身的产品。
政府机构或者要员如果有一点理想或者不想惹麻烦,毕竟还是会趋向于选择比较成熟的产品,大厂的产品。
有心为国产数据库贡献的小企业,还是早点卖身给大企业。至于浑水摸鱼的,迟早有被唾弃的一天。
国家和企业需要努力推进标准的制定,这样能规范发展,保护用户利益,对外也更有战力。




