• 为什么国产数据库总喜欢标榜自己兼容Oracel ?
  • 发布于 2个月前
  • 119 热度
    0 评论
中国的国产数据库都有一个非常奇怪的现象,要死命说自己兼容Oracle数据库。不但要说,还要给百分比,我兼容99%,你才兼容95%。当然我也不知道这种百分比是怎么量化出来的。Oracle数据库目前被广泛使用在国内很多产业上,比如银行。Oracle数据库诞生的时候,SQL标准还没诞生,所以Oracle数据库里面留下来无数自己的专有的语言特性,有些后来的SQL标准也支持,所以Oracle里面有两套,一套自己的,一套标准SQL的。有些SQL到今天都不支持。

按理来说,Oracle数据库虽然是个伟大的产品,但是里面有很多东西也代表着老朽,陈腐。国产数据库好好兼容SQL的几个标准就好了,为什么大家都趋之若鹜的去号称自己要兼容Oracle呢?达梦号称是兼容Oracle最好的,Oceanbase最核心的兼容Oracle的代码不开源,还有很多厂商都跳出来说自己也兼容Oracle。

总给人感觉好像这是种病,得治。当然,生病的肯定不仅仅是这些数据库厂商,这首先得怪这些厂商的客户们。客户们围绕Oracle早年开发了很多应用,很多存储过程,现在想替换成国产数据库的时候,客户的需求最好就是弄个国产Oracle,自己写的东西可以无缝安装上去,什么都不要改。这种需求来了以后,国产数据库们,就要迁就甲方爸爸,开始死命兼容Oracle了。不然的话,生意都没得做。

问题是,很多数据库,比如分布式数据库,应用层面的适配,要求是不一样的。所以兼容Oracle作为平替,是不是需要国产数据库这样的架构,还是说做Oracle的平替最好基于Oracle的架构来做,这显而易见的。如果我们要的是Oracle的平替,那按照Oracle的架构来做数据库才是四平八稳的,现在的各种分布式数据库,都是扯的蛋疼。

总之,我们的甲方爸爸们,对国产替代的理解,就是我可以把数据库整个换了,我的应用不需要改,你们乙方必须满足啊。呵呵。所以前赴后继的,国产数据库们都死命要兼容Oracle。问题来了,Oracle的兼容容易吗?当然不容易。不信的话,我刚写了这篇文章你读读:Oracle 2500 万行的屎山代码有多“恐怖”?

Oracle的数据库团队有上千人,积累的测试数据集有无数,每次修个bug都很不容易。这一方面固然可以说Oracle的代码都是一坨屎山了,但是也不得不说Oracle非常的复杂。要想以我们现在这些创业公司的投入,做出一个能够各方面都平替兼容Oracle的数据库产品,你说你是有足够多的开发人员呢,还是有足够多的测试数据呢?

显然我们的创业公司,什么都不具备啊。那好了,兼容个鬼。不管你怎么兼容,估计也就是服务每个客户的时候都能出一堆的兼容性bug,修一堆的问题。最后你自己的代码无限接近Oracle的时候也成屎一样了。

你说兼容Oracle是不是就是神经病才提的要求?
用户评论