为何大部分互联网公司使用的数据库都是MySQL数据库?

为何如今大部分互联网公司使用的数据库是MySQL?还真是这样哦,个人网站使用的是mysql数据库,我所在公司的网站也是使用的mysql数据库,个人不少客户网站也都是使用的mysql数据库,不多有使用微软的mssql或甲骨文的oracal数据库的,这是为何呢?
1、mysql是开源免费的。
这应该是最主要的缘由吧,使用mysql数据库是不须要花钱的,因此,大多数公司为了节省公司的成本,就会首选mysql数据库。不论是微软的mssql数据库,仍是甲骨文的oracal数据库都是须要收费。固然,在安全级别上,oracal数据库是最高的,是一些数据公司的首选(如:电商平台对安全要求最高),可是,对于通常的公司来讲,mysql数据库的安全级别就够了,不必花大价钱购买oracal。
2、PHP+mysql是网站开发者的首选。
为何大部分互联网公司使用的数据库都是MySQL数据库?
网站的开发语言不少,如:PHP、java、asp、asp.net、python等等,这些开发语言各有各的优点。可是,市面上绝大多数据网站都是经过PHP语言开发的,PHP语言在网站开发上的优点远远大于其它几种语言,这也是业内公认的。而PHP+mysql的组合更是网站开发者的不二之选,因此,得益于PHP语言,mysql也受到最大的追捧。
3、大多数服务器使用的是linux系统。
如今的网站服务器系统主要有2种:windows系统和linux系统。对于一个公司来讲,网站的稳定运行是最重要的,而linux系统的稳定性要比windows系统要高不少,因此,绝大多数的网站会选择linux系统做为本身网站服务器的系统。而LAMP(linux+apache+mysql+php)和LNMP(linux+ngnix+mysql+php)是目前linux服务器使用最多的PHP环境架构,因此,mysql数据库在linux系统服务器上获得普遍的使用。
4、不少网站程序都是基于mysql数据库的。
并非每个公司都有本身的网站开发人员,因此,不少公司在作本身的网站时,都会选择易于上手的网站程序来搭建本身的网站,好比:wordpress、织梦CMS、帝国CMS等等,尤为是wordpress程序,受到国内外众多用户的追捧,全球用户能够用亿来计算。而这些网站程序基本上都是基于“php+mysql”组合开发的,可见mysql数据库受欢迎程度。
总之,到目前为止,mysql数据库依然是最受欢迎的数据库,也是使用最多的,它的轻量级、它的开源免费、它的易用性、它的友好性都让它在网站开发中受到开发者的重视和追捧,真可谓是“众星捧月”。
为何互联公司都用MySQL非oracle,难道只是便宜?
—第一段—
当数据量太大、并发过高时,有两种解决方案:
一、仍然使用集中式方案,提高单台主机的能力。
二、使用分布式方案。
两种方式均可以解决问题,就看高层如何选择了。阿里选择了分布式。
一旦选择了分布式,好比将一个大表分到多个数据库中。若是是Oracle,数据库太多license费用随之上升。若是是MySQL,数据库再多也不用担忧License问题。因此,MySQL胜出。
而Hadoop类的纯分布式方案,在OLTP下,优点并不明显。它们是为大数据而生的。
若是选择了集中式,照样有方法解决。由于世界上并不仅有BAT,并不是Oracle搞不定高并发、大数据量的OLTP系统,就看硬件、和人的投入了。
阿里只因此没有选择集中式,主要是其余团队想上位,他们为高层描绘一个美好的明天。
你没看到阿里的这一轮去O风潮,阿里系老一代DBA都失去主导权了吗。技术圈里不多再有他们的声音。这就是政治,说白点就是江湖。有人的地方就有江湖。阿里系老一代DBA中不乏有拿着千万的股票提早退休的,退出江湖,衣锦还乡,不错啊。
分表、分库后,面临两个问题:
一、要有强大的中间层。阿里在这一块的投入是巨大的。这直接催生了另外一派势力。
二、分表、分库后,跨库事务成为问题。这一块至今都没有好的方案解决。
至于互联网业务的发展,固然不会被Oracle限制。到是上面所说的分表的方案,限制了一部分应用。若是当初选择的是集中式方案,应该不会有这方面的限制。
—第二段—
源码修改,阿里所造的较大的修改,据了解只有仿照一个日本人的方式,去掉了MySQL的解析过程。
修改过的MySQL的应用范围,不太清楚。阿里的重心也不在这一块,对源码,要了解。
了解源码的目的是为了更深的了解MySQL的优、缺点,更好的使用MySQL。还有,能够基于MySQL开发一些产品。
这实际上是使用开源产品的两大优点:
一、能够更加了解软件运做的原理,更好的设置MySQL。一旦出了故障也能够准肯定位。
二、能够更容易开发周边产品。好比开发解析OracleRedo的产品极为困难,但MySQL就不同了,Redo的格式是公开的。php

Oracle如今是愈来愈封闭,在不使用调试技术的状况下,研究Oracle日渐艰难。许多性能资料、等待事件的本意无从知晓,问题的定位比较困难。开源的MySQL不存在这样的问题。国内互联网巨头多在开发基于MySQL网络协议的代理层。做文网https://www.isanxia.com简单点说你链接MySQL,实际上是链接了代理层,由代理层把你的SQL发到某个MySQL库中执行,若是是OLAP型SQL,由代理层用协调器,将SQL分布到多个MySQL库中执行,再由代理层合并结果。

若是下层是Oracle,这样的代理层开发极为困难,由于要全面了解网络协议。若是是MySQL则不一样了。
—第三段—
OLAP、大数据领域,分布式优点明显,Oracle、MySQL这些为集中式设计的数据库劣势明显。
但在OLTP领域,纯分布式(好比Hadoop)方案并没有优点。
用MySQL作分布,要有一个代理层(或中间层),程序链接这个代理层,程序觉得链接的是一个MySQL,但实际是背后是一堆MySQL。
这样的分布式方案,在跨库事务这一块上是弱点,有可能限制了业务发展。
纯集中式方案不存在这样的问题。
分布式在OLTP中也要用,但对于OLTP来讲,不到万不得一,不要分布。能分两台、不要分三台。
OLAP简单的堆机器、拼机器数量没问题,OLTP下机器数量一旦失控,其产生的问题、成本等等更难以控制。
如今硬件都在提高。SSD、InfiniBand更快的网络等等技术,使用RAC这样的有限式分布方案,基本上均可以知足OLTP的须要。
而MySQL因为开源,能够带来两大优点:
一、能够更加了解软件运做的原理,更好的设置MySQL。一旦出了故障也能够准肯定位。
二、能够更容易开发周边产品。好比开发解析OracleRedo的产品极为困难,但MySQL就不同了,Redo的格式是公开的。
Oracle如今是愈来愈封闭,在不使用调试技术的状况下,研究Oracle日渐艰难。许多性能资料、等待事件的本意无从知晓,问题的定位比较困难。开源的MySQL不存在这样的问题。
国内互联网巨头多在开发基于MySQL网络协议的代理层。简单点说你链接MySQL,实际上是链接了代理层,由代理层把你的SQL发到某个MySQL库中执行,若是是OLAP型SQL,由代理层用协调器,将SQL分布到多个MySQL库中执行,再由代理层合并结果。
若是下层是Oracle,这样的代理层开发极为困难,由于要全面了解网络协议。若是是MySQL则不一样了。java