自己原文公众号: https://mp.weixin.qq.com/s/Asfm6sS-MmjGiEsJF6XUfQ
前段时间在选择新能源车(本文依然是技术文章)。特斯拉是推荐人最多的,销量是最好的。我感觉这就是数据库届的Oracle一样。成为了标准,这毫无争议。不过我想买个国产的。自己用说句实在的,就是选错了问题不大。我还是支持国产的。但是企业数据库选型,不能为了国产而国产。这里要结合国产的质量以及DBA对开发的掌控力度。如果对开发毫无掌控力度,国产和开源的都会觉得很吃力。
说起来现在几个主流的数据库Oracle(一骑绝尘的集中式数据库,也有分布式但是集中基本够大家用),MySQL(最流行的开源数据库)和PostgreSQL(最先进的开源数据库)。其实数据库不需要有过节,在2018年北京有过一次PG和MySQL的世纪对决,当时我有幸在现场,现场的争论还是非常激烈的。那次给我最深刻的是平安集团的汪洋,他是PG的支持者是一个典型的PGer。他说他的原则:平安受到一行两会的监管,那么那种核心的,会被约谈的,他们采用了Oracle。(后来我也听说他们有一个300T的Oracle,而我处理最大的是100T的Oracle)。剩下的采用了PG和MySQL。怎么分呢?复杂的业务场景用了PG,简单业务场景的用了MySQL。这其实很好诠释了3种数据库的不同场景。Oracle承担核心,多表关联PG,单表MySQL。各有各的优势。请看下面一则旧闻:陆金所说了N年的去O。重点是全应用推翻重做,那当然是可以的。而且都改造到了几乎都是单表(不过一般企业没这个能力和魄力).

其实MySQL官方对MySQL的定位是简单、非计算型的轻量型。适用于快进快出、高并发、高性能。说明了官方的定位。没想着MySQL替代Oracle,所以大家也一直说用MySQL的,不能叫做去O。因为Oracle MySQL都是Oracle的。单机MySQL也挺强的,单机PG也是。其实都满足大家业务的,就是要看场景。
所以PGer说MySQL有一天会不能用,那么MYSQLer回怼就说,如果MySQL不能用的那一天,PG也不能用了。以上都是真的,听说华为前几年不能访问GitHub,所以真的管控和是不是开源和商用没什么直接关系。虽然战争随时爆发,但是也不能因为要打仗,咱们就停止建设了吧?该买苹果手机和MAC的还是买了,特斯拉还是销量第一。其实我觉得蔚来和小鹏也很好。比如我看到了小鹏P7的鹏翼版(比P7贵了8万)下图:

销售说因为剪刀门技术含量高些,我觉得这个带翅膀的也很好看。这个时候有人感受坐了一下车,这个车门是自动的,当遇到有障碍物会停止打开。很智能,结果体验的人说了一句“垃圾”。我实在不知道在这个人心中什么不是垃圾?我觉得很好的设计或者功能,有的时候在其他人眼中就是垃圾功能。
这也正好说明数据库选型之难。也许好的东西在外行看来就是垃圾。我听到很多都是非理性的。张三说我选Oracle因为没用过MYSQL,李四说我选MySQL因为我不会Oracle,王五说我选PG因为我喜欢它。其实这些完全不成立,哪里能靠自己的喜好选择?哪里能因为会与不会来选择?这些一定要是自己都经历过才有资格发表意见。比如平安汪洋说的,那是真的结合实际和产品得出的结论,反而说明他精通多种数据库,才能下这个结论。而不是一上来就说什么是垃圾。秉承着这个,我是把这些认证全考了,甚至我可以说我都可以去讲课,事实上我的确是这样做了。我的结论和汪洋的差不多,再补充一点,其实不管用什么数据库,开发都要听DBA的。商用的不听有小问题,开源的不听有大问题。
没用过的先不要发表评价,不能因为热衷哪个就选哪个?来,我们先谈谈锁,请你先把锁在不同数据库,不同事务隔离级别的机制说清楚,我们再说选型。这个都没搞清楚,然后就说选型,只能说明有别有目的。
最后说一下国产,我也很希望有一天国产的数据库,也能想刚才说的一样。只是现在只能等待几年。等待最终活下来的几家,企业不能上了很多家,最后这些家公司都关门了,都成为了企业的债。多么希望有一天,在一个中文的操作系统的命令行下打:启动数据库 这5个汉字
数据库实例就启动了。
