数据库 频道

面对数据库之争,看这位DBA老兵站哪边

昨天有场MySQL和Postgresql哪个是最好的开源数据库的辩论赛,也有人问我如果让我来选边,我会站哪边。我可以十分明确的说我站PG这边,原因是,我只懂PG不懂MySQL。当初团队准备扩展Oracle以外的服务的时候做了分工,有些人去学MySQL,另外一些人去学PG。MySQL当时用户需求比较急迫,我岁数大了,学东西比较慢,所以分配给我学习不那么急迫的PG。

实际上对于大多数人来说选边站就这么简单,我学了PG,觉得这数据库真不错,我不懂MySQL,不知道它好在哪,因此如果让我在MySQL和PG中选边我就选PG这一边。选边这种事情,立场是第一位的,然后才会去发现和总结自己这边的优势,否定对方的优势,这都是在情理之中的事情,这也没啥技术含量。人有了立场,那么就得站在立场上说话,于是就会从技术角度讲出一大堆好坏之分来。二十多年前一群DBA在ITPUB上争论Oracle和DB2谁是最好的关系型数据库的时候,也是如此的。只不过那时候互联网不发达,大家想吵架也吵不出今天这样的精彩场面来。

在我眼里不管是Oracle还是MySQL、PG,就是一个数据库产品而已,用户喜欢哪个,能把哪个用好完全取决于用户和应用本身。差不多十年前,我在帮客户去IOE的时候,觉得很兴奋,就像把这个思想输出给国外的一些同行。我给一个老外DBA介绍国内的去IOE,问他美国是不是也有类似的需求,他感到十分的不理解。Oracle那么贵,一些小系统本身就应该用SQL SERVER或者MySQL之类的开源数据库,用啥数据库应该是应用特点决定的,因此他们那边没有什么去IOE的概念。有些小系统,找台便宜的PC机,装个开源数据库就搞定了,还用啥IOE啊?没有滥用IOE,也就无所谓去IOE了。确实是的,用啥数据库应该是应用决定的。数据库没有好坏之分,只有用没用对地方的区别,如果你非要在边缘侧使用Oracle,那么Oracle也会成为最烂的数据库。

现在数据库领域已经太卷太浮躁了,所以此类的争论和争吵不绝于耳。在这方面,国产数据库领域更甚。一些Oracle的铁杆则是摆出一副Oracle是天底下最好的数据库的姿态。作为一个三十年的Oracle DBA,我至今最擅长的还是Oracle,最喜欢的也是Oracle,不过时代变了,该逝去的东西早晚要逝去的。数据库领域改朝换代之下,坚守是必要的,但是固执就不可取了。电影《神鞭》里傻二最后玩枪的镜头一直是中华文明能绵延数千年的最好阐释。在大时代背景下,拥抱自己不那么喜欢的数据库,也就是顺应潮流之选了。在这种语境下来看站边的问题,是不是也有些意义呢?

对于种类繁多的数据库产品,每个人都有偏好,也都有自己擅长与不擅长的。因此有立场十分正常,站战队说说好话也很正常。不过如果你喜欢某个数据库,真的没必要一出口就是“XX数据库是最好的数据库,不接受辩驳!”,我的公众号上有些讨论数据库优缺点的时候,就经常有同学在上面写这样的留言。他可能不清楚我关闭了公众号的讨论,他的留言只有我一个人能看到,而且我从来不讨论此类问题。我还多次听到一个某数据库的拥趸说,如果我来设计一个数据库,我会怎么样怎么样。其实我觉得如果你真的有这个心思,去干就行了,没必要到处去说,你如果真的做出了一个完美的数据库那是数据库界的幸运。

如果你真的十分热爱某个数据库,那么就一心一意的为这个数据库做些事情就可以了。通过自己的影响力和能力输出一些如何把这个数据库用得更好的技术干货,或者甚至直接参与对这个数据库代码的 优化工作。在这一点上,我特别佩服老楼,从他的微信朋友圈中,从来没有看到他说MySQL是天底下最好的数据库,没有之一。不过我经常能够看到他优化了MySQL数据库代码后的由衷喜悦。这种不断的在输出自己技术的行为,我极其佩服,可惜我现在已经丧失了此种能力。

喜欢某个数据库产品,站边某个数据库产品,都是很合理很正常的,因为人总是有立场的。如果你喜欢某个数据库,那么就尽可能的为它做点实事吧,输出和共享运维经验、优化方法、使用心得都是对这个数据库最好的支持。我现在趁着目前还有学习能力,也尽可能多做些能够让PG数据库更好的事情。也许哪天能力枯竭了,没啥可以输出了,那么我也学学某些前辈,到处去讲:“我认为PG是最好的数据库,不接受辩驳!”

0
相关文章