题目看似跳跃,其实如果能看完估计就知道这里面的联系了,微软断供这几天炒的有点凶,各大媒体都在报道和分析.
商业数据库无论是DB2 ,ORACLE , SQL SERVER 这些数据库进入中国少说也有30年,这里ORACLE ,SQL SQL SERVER 的普及面还是有的,那个公司敢说,我们公司,ORACLE 还有 SQL SERVER 一点都没有关系,即使自研没有,那购买的系统还是有的使用这样的数据库的. 说到这里那就用SQL SERVER 和 ORACLE 不就好了, 实际上中国面临的整体的大环境和10年前有了很大的变化, 从某国的合作伙伴,到必须除掉的肉中刺的变化.
期间某国的技术封锁,已经让我们的国内的第一手机品牌的芯片断供,可能会处于有技术,但没有产品出货的尴尬现象. 那技术封锁会不会到数据库的层面,此次某"软"的断供的信息, 给去IOE 的老生常谈,又来了一棒子, 之前去IOE 是主动的,而现在的是倒逼你.
从职业本身和数据库市场来说,数据库的在中国的演变也是一个线性的过程,而线性的过程中,ORACLE 和SQL SERVER 伴随着大部分的企业,包括银行,电力,电信等行业, 而之前去掉 ORACLE 和 SQL SERVER 如果说是为了节省成本,而现在,去掉他们则是无奈之选.
估计有很多人已经不耐烦了,去ORACLE 去SQL SERVER ,那可以用MYSQL, 为什么你题目是POSTGRESQL, 这不科学. 或者说就因为你会POSTGRESQL , 熟悉我这个公众号的基本上都知道, MYSQL 和 POSTGRESQL ,MONGODB ,REDIS, 以及其他的商业数据库这里都有相关的文字,并不是我只会POSTGRESQL 而就叫嚣, 去ORACLE 去SQL SERVER 要用POSTGRESQL.
那既然有十万个为什么,那就的说说为什么,商业数据库去掉了,要用POSTGRESQL来代替.
原因如下:
1 POSTGRESQL 在大部分情况下, 将应用程序从ORACLE 和SQL SERVER 移植到POSTGRESQL 的开发成本和DB的成本对比其他数据库要小, 任何时候,不谈技术,谈成本,老板在同等达到要求的情况下, 第一个要看成本. 至于为什么从ORACLE SQL SERVER 到 POSTGRESQL 成本比其他数据库要低,这不言而喻,没有什么争辩的必须. (不用分库分表,不用调整项目整体架构,不用提高对程序员的要求,节省整体改造时间 等等)
2 技术成熟稳定,POSTGRESQL 从产生到现在历史有30多年了,虽然中国大陆是最近这几年才听到他的声音,但在国外他有比较良好的社区和定期的会议,俄罗斯和日本这样的国家,在使用PG方面都有成熟的经验,并且有很多靠谱的商业和开源的软件.
3 众多的开源数据库的原型,即使你不学PG,但不少的开源数据库例如高斯, TBASE, POSTGRESQL -XL , Citus 等等, 这些都是基于PG内核和原理,所以学习PG会加速这些变种和分布式的数据库的学习.这不吃亏.
4 银行,电信,电力,国有企业,等这些企业要进行系统的改造,实话,这些企业的开发水平不怎么高,和互联网企业是无法比拟的, 他们大多是购买产品或少部分自研产品, 如果整体因为数据库而造成软件架构复杂,或者由于使用某些数据库后,提高运维成本, 则很不划算. 所以PG 作为传统RDBS系统, 替换传统的ORACLE ,SQL SERVER 优势是明显的, 开发人员的思路也不需要变化,至少那些开发人员用惯的存储过程还能存活,甚至PG 支持多种语言的存储过程,而不是和某些数据库如果更换, 那就和 孙悟空大闹天宫一样,鸡飞狗跳. 当然这些企业的领导也大多希望能平稳, 稳定, 少改动, 别动静太大,根据这些思路, PG 则是必然的选项,而不是偶然.
5 查询数据的方式与传统的ORALCE ,SQL SERVER 基本上没有不同,并发select ,JOIN的方式与商业数据库齐平, 多种的物理,逻辑数据复制,物化视图, 多种索引方式的形成和使用,等等,基本上如果拿PG 当商业数据库去销售,没有任何的难度,并且也与ORACLE SQL SERVER 这样的数据库在商业性能上比较都有可圈可点的地方,不会处于劣势,稳定性方面也是处于商业数据库的等级.
6 丰富的开源和商业软件的支持,大白话就是数据库周边的生态POSTGRESQL 是不错的,供应商国外的国内都有,任你挑选,如果你对ORACLE的提供的专业的支持服务,还怀念的话, PG在中国大陆的软件服务乃至数据库二次开发商也都是靠谱的,并且很多云厂商(小的云,自己没有开发能力), 也都在购买这些厂家的产品和服务.
7 人员储备的问题,诚然这个是一个攻击点, MYSQL ,或者ORACLE ,SQL SERVER 的从业者数量较多,比较方便就能找到相关从业者入职, PG的人员招聘是有难度的,我自己知晓的某单位,找PG的DB管理员,长达1年,最终还是没有找到合适的, 其实目前有些单位可以下调对于PG从业人员的要求, 以PG外部厂家和初中级PG管理员并重的方式,两条腿走路.
所以说到这,就和题目贴切了,还的赶紧learn to PG. 因为如果数据库的选择用英语时态来看 SQL SERVER 和 ORACLE 属于过去式, MYSQL 属于现在完成时, PG ,MONGODB 属于现在将来进行时.
另外这句是对某些不懂系统开发和数据库的老板说的, 如果您雇佣的架构师在设计系统时,还一开口就是 SQL SERVER ,ORACLE , 您自己心里的有个衡量度,可以换一个架构师就换一个吧,因为与时俱进这个词,在您的架构师身上数据库LEVEL并未体现,可想而知他的架构知识估计也结了蜘蛛网.