贵啊!
互联网的精神就是开放、分布式、快速增长。
当年的FaceBook也好,腾讯也好,谷歌也好,他们成立的时候创始人还是一群大学生,哪能买得起高高在上的Oracle,何况还要按用户量收费。
我们看看最便宜的Oracle 11 G标准版还要5.5万,一般的毕业生创业是很难买得起,大部分是卖给银行,电信这些传统的地头蛇。
何况,以互联网的爆发程度,一旦用户扩展,增加数据库,其数据库服务器的授权费用更是海量上升,比普通的云服务器要贵多了。
如果说一台云服务器一个月只要1000的话,那数据库就敢要2万。
做互联网的孩子们哪里掏得出这个数呢。
于是就走开源,用自己的技术来解决钱的问题。
这就象打游戏一样,有钱的K金战士上来就全套装,人档杀人,没钱的玩家或者小V就自己打副本攒装备,时间长了也可以。
时至今天呢,其实Oracle的很多属性还是全球第一的,没办法,因为它的钱多,花得起这个代价上新功能。
就连和它PK的MySQL数据库也被Oracle公司给买下了,从而制约了创新。
现在MySQL商用版还要几万块呢,真是垄断,可耻!
但是基于互联网的数据平台们,从两个角度向Oracle发起了竞争。
一是分布式,
一个就是大数据。
数据库的分布式革命
分布式,简单来说,就是用数量来解决质量的问题,你Oracle牛B,我用2台,3台免费的MySQL或者其它数据库可以吧。
因为MySQL是开源的,所以各大互联网公司,都能够在它的基础上学习,或者进行演进,用来解决那些Oracle公司不再提供升级的功能。
通过分布式,将不同的用户需求分布到多个数据库中,从而大大提升了数据库的性能,加强了数据查询和操作的有效性。
数据库的分布又分为水平扩展和垂直扩展,水平扩展指的是每一个节点都具备相似的功能,能够同时处理全部数据的所有操作,这种方式大大提升了读取的速度,但是写数据还是需要互相同步。
这时,以FaceBook为首的社交软件对数据库进行纵切,这就是按照用户所在的群组,对数据库拆分,一个用户或者一群用户用一个数据库,另外一个区域的用户用另一个数据库。
当一个数据库群组变大了,还可以再次切开。
通过这种做法,原来Oracle强大的集中数据管理优势,慢慢地变得不那么重要了,当然Oracle本身也是支持分成多个数据库,通过应用层来管理和分发的。
但是Oracle还是坚持古老的授权习惯,每一个节点都要高昂的授权费用。
这个做法不变,互联网厂商是很难大规模应用Oracle的。
谁都不想把自己辛苦攻得的用户流量,变成Oracle的利润点!
另外一个变化是大数据
随着带宽的提升,网络应用进一步发展。
互联网公司发现自己的数据并不仅仅是单一的表结构重复,而是具备多种异构数据,很难用普通的关系数据库概括。
但它们也是有用的数据,彼此之前存在关联。
比如图片、视频、文件包等可种各样的数据。
这,就是大数据!
这个阶段,互联网公司已经逐步成为技术平台上的主角,因此它们会根据自己的需求,创造性地发明了一套大数据体系。
比如亚马逊的Hadoop大数据,
NoSQL、Redis等。
这时的大数据平台,就不仅仅是数据集合,同时还包括了大量的大数据采集、分析和管理工具,能够很好地操纵大数据并得到相应的结果。
今天,大数据深刻地改变了互联网的结构,基于大数据的基础架构,我们已经搭建了从基础设施层、平台服务层到应用层的一系列组件和平台,大大地丰富了我们的科技和生活。
在大数据领域,Oracle的创造基本上为0。
因为它还是按照自己那套单机软件卖钱的精神,并没有奉献出自己的产品和技术。
其实银行也可以不用Oracle
虽然我们有了分布式数据库,和大数据技术。
但是在关系数据库的领域,不得不说,Oracle目前还是第一名的,无论是它的性能,安全性,还有它的成熟度。
很多银行和金融机构都在采用它,并且不断地升级。
那么,在一些高要求的场景中,尤其是国家建设的重点项目中,我们不想用Oracle,但还需要保持它那种强大的性能和安全属性。
我们就会在MySQL、Postsql这些开源版本的数据库中,进行修改,提升它们的性能和安全性,用来满足一些特定的要求。
其中腾讯云就基于MySQL的一个分支版本,建设了自己的TDSQL数据库,用于提供金融级的服务。
但是MySQL由于Oracle的使坏,并没有解决核心数据的安全性问题,所以进行了较长的开发周期,直到2012年才发布第一个版本。
TDSQL采取replica 来进行数据检测和切换,提升可用性;
Sharing实现了集群资源调度、访问路由,解决容量伸缩的问题;
同时还有管理调度器、接入网关和代理服务器,用来支持多节点的互操作。
为了解决高性能的问题,TDSQL采用了线程池的方案,根据不同的网络环境进行优化,再支持多组同时提交。
到了2017年,TDSQL数据库已经服务了百万客户,这时它又推出了一个云原生的数据库CynosDB,达到全球领先的130万QPS性能,对于海量用户可以很好的支撑。
说实话,腾讯的TDSQL和CynosDB招聘了大量的百万年薪的程序员,并投入时间和场景进行研究,最终的效果还是不能全面超越Oracle,也是一个小遗憾。
但是它解决了两个问题:
一是基于自有技术的数据库,解决了购买商业数据库根据节点付费的问题,避免了自身的数据库成本放大。
二是通过TDSQL数据库,及其强大的工程师队伍,可以支持国内金融级的大规模关系数据库部署和业务。
为金融企业的去IOE化找到一个突破点,从此我们又省了许多外汇了。
我想,这也是去年甲骨文中国总部撤销的原因吧!
因为他们的技术被超越了,再不象以前那么容易控标和赚钱了,我们中国人的技术,慢慢越来越强,越来越无敌的!
加油,我的国!
感觉其他人答题方向似乎不对!
Oracle这类产品和开源数据库的区别基本上就是两点, 在强一致性方面,也可以说数据安全方面,Oracle这类传统厂商是具有压倒性优势的,尤其是结合不连公众网络的内部大型计算机,可以做到稳定和安全都极高的程度,比如10年不关机,不出故障,不出错!开源数据库现在达不到这个程度!
而开源数据库的优势呢,其实就是价格优势, 如果几千几万台服务器部署商业数据库,基本没有公司承担的起这个授权费用的! 开源数据库的稳定和一致性不如传统商用的,但对互联网公司来说够用了! 比如你发的一篇文章丢了,也没啥大不了的。 但这种问题对银行类公司来说就是无法接受的。
其他的什么开源软件的功能多,组件多的,这都是便宜的副产品! 要是商业软件便宜的话,你说开发者会不会在上面开发功能呢?
原创文章,作者:普尔小编,如若转载,请注明出处:http://www.puerpx.cn/pxwd/10586.html