文章来源:微信公众号 “四海内皆兄弟”
作者:薛晓刚,Oracle ACE/PG ACE partner/ TiDB MVA、布道师 / OCP 讲师 / ITPUB 核心专家 / 墨天轮 MVP/Oracle 认证 / MySQL 认证 / PG 认证 / Oceanbase 认证 / 达梦数据库认证 / TiDB 认证
我个人愿意学习多种数据库,但是我不太愿意去切换数据库,这里有多方面原因。有点长,看完了再觉得是不是要骂我。有可能不骂了,也可能骂的更厉害了。
开发原因:做过DBA的都知道,遇到让开发改SQL几乎没有顺利的。我曾经遇到过Oracle从11到19,一个SQL都不用改,这样来自开发方面的阻力就没有了。但凡要改都会血雨腥风。比如MySQL从5.7升级到8.0,个别SQL要加一个Order by,这个就论证了个把月。因为不确定有没有其他的。这种同构数据库升级还是前怕狼后怕虎,更加不要说替换成其他的数据库。有大量的改造工作,而且这写改造都还不算工作量。改不好还是背锅的。虽然很多厂商说100%兼容。别说我不信了,不懂技术的领导也不信啊。人家自己数据库同构升级还还没敢这么说。领导就是讲这个逻辑。
运维原因:维护一个未知的数据库,心里没底。不是人人都像我这样见一个学习一个。即使是我这样学习了很多,但是作为企业员工要铭记,不能为了彰显自己会的多,会的数据库就都上。到时候公司有十几种数据库,这不是好事。这些成本都是企业要承担的。更加不能凭借个人喜好来选择。就我个人而言ACE是Database方向,即可以说是Oracle的也可以说是MySQL的,平心而论我的MySQL水平高于我Oracle的水平。但是有些场景我还是选择Oracle。因为即使我没有吃透它,它也能不用让我那么操心稳定性。今天看到一个SQL运行了145天,扫描了120万亿行,还没执行完。因为是笛卡尔积了。MySQL PostgreSQL这些我也用,但是看看这些SQL质量,再看看我们现有的人力资源,发现真的是Hold不住。毕竟业务连续性不能靠人肉保障。
成本原因:这里的成本有采购成本和开发改造、运维支持。前段时间一个朋友说她们企业从Oracle切换到一个国产,让我猜猜成本是Oracle的多少倍。(你们别问是哪家也别问换了什么,问了也不说)。我猜是5倍,因为以前阿里去O之前50个DBA,去O之后200个DBA。浙江移动也做过计算,去O以后每年可能要多花个几千万。所以我猜是5倍。那个朋友说是大约30倍。听到这个还是超出了我的想象。也是贫穷限制了我的想象力。可能有人会说,你如果买齐了Oracle的许可就不是这样了。真实是,人家是真的少有的实打实买齐许可的。也就说如果是潜规则买Oracle的话,这个比例可能是300倍甚至600倍。这里说到另外一个话题,为什么要买齐啊?合规有其他方式啊,根据我群里的信息,Oracle有一种策略叫Unlimited licenses agreements,简称ULA就是无限制使用。一般是两年范围内,数据库包括选件一到三个,都是无限制使用,永久授权。比如,某大型银行总行买了,所有总行以及分行都可以使用。可能几百万就行了。如果500万买了,那么当个地主把。假设安装1万个Oracle,每个Oracle100个CPU。那么每个CPU平均就5元。比起某些国产单价来说,真的是便宜。以后你不买了就没服务而已。也是合规的。所以如果一个企业说有10万个CPU,都买Oracle许可那是要破产。但是这种做法是无知啊,不懂得节约成本。偷税漏税和合理避税是两回事。每年个税申报时候不都是选择有利于自己的那种形式吗?
有一次我说别人说,好像用O是降本啊。朋友说在国内大部分企业来说用O都是降本的。花了大价钱最后还不如之前的稳定,这就让人气愤了。有种被骗或者被抢的感觉。不止一个朋友和我说,他们买的是真贵,死贵死贵的。
对于骗钱的国产实在是恶劣,今天很多人都看到这个了吧。和4.27亿比起来,Oracle DB2几十万,几百万的怎么好意思和别人打招呼呢?国外一些数据库好意思说自己垄断吗?
打着旗号这种真的是让人恨啊。国产也有好的,可能只占少数吧。这些集中在2016年以前从事这个行业的,那可能是真的做。就是这个不被看好的时候就做的是还可以的,最起码不是骗人的。至于做的好坏另说啊。总之不是在有了政策之后才冒出来的抢钱就行。但凡是大家一窝蜂的去做的,基本就是乱来了。
我上周用了5年的华为P20不太行了。买不起遥遥领先,但是也要替换一下。因为有云的关系所以必须还是买华为的。最后花了2000多,穷嘛。我还有一个手机是小米的,1000多。笔记本是公司发的联想的。自己的车是国产的蔚来的。从我做起,有问题是影响我自己。
但是在企业上,我不太敢做出这样的全面替换的建议。理由上文都说了。而日常我看到不少手机用苹果的,笔记本用MAC的,开着特斯拉或者用IPad的,对我说要替换某某国产数据库。这些人可能不参与开发,不参与运维,不参与采购,属于站着说话不腰疼的。这些成本谁出?出了问题你上不?不少人连锁是什么都搞不清楚就来说数据库选型这不是外行指挥内行吗?红军反围剿失败就是这种啊。自己的都不用国产鼓动企业用,不是纯就是坏。
MySQL和PG也是开源的好产品,我用的还行。但是光我行没有用。其他人都不行是白搭的。当然OB、TiDB等也是可以的。国产的我也会不少。只是这些需要结合自己的情况上。每家产品我都熟悉,我不能都用。而且这些都是要考虑上述多方面的投入。