为什么大部分互联网公司使用的数据库都是MySQL数据库?
2020/9/27 8:03:43
本文主要是介绍为什么大部分互联网公司使用的数据库都是MySQL数据库?,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
为什么现在大部分互联网公司使用的数据库是MySQL?还真是这样哦,我的网站使用的是mysql数据库,我所在公司的网站也是使用的mysql数据库,我的很多客户网站也都是使用的mysql数据库,很少有使用微软的mssql或甲骨文的oracal数据库的,这是为什么呢?
一、mysql是开源免费的。
这应该是最主要的原因吧,使用mysql数据库是不需要花钱的,所以,大多数公司为了节省公司的成本,就会首选mysql数据库。不管是微软的mssql数据库,还是甲骨文的oracal数据库都是需要收费。当然,在安全级别上,oracal数据库是最高的,是一些数据公司的首选(如:电商平台对安全要求最高),但是,对于一般的公司来说,mysql数据库的安全级别就够了,没必要花大价钱购买oracal。
二、PHP+mysql是网站开发者的首选。
网站的开发语言很多,如:PHP、java、asp、asp.net、python等等,这些开发语言各有各的优势。但是,市面上绝大多数据网站都是通过PHP语言开发的,PHP语言在网站开发上的优势远远大于其它几种语言,这也是业内公认的。而PHP+mysql的组合更是网站开发者的不二之选,所以,得益于PHP语言,mysql也受到最大的追捧。
三、大多数服务器使用的是linux系统。
现在的网站服务器系统主要有2种:windows系统和linux系统。对于一个公司来说,网站的稳定运行是最重要的,而linux系统的稳定性要比windows系统要高很多,所以,绝大多数的网站会选择linux系统作为自己网站服务器的系统。而LAMP(linux+apache+mysql+php)和LNMP(linux+ngnix+mysql+php)是目前linux服务器使用最多的PHP环境架构,所以,mysql数据库在linux系统服务器上得到广泛的使用。
四、很多网站程序都是基于mysql数据库的。
并不是每一个公司都有自己的网站开发人员,所以,很多公司在做自己的网站时,都会选择易于上手的网站程序来搭建自己的网站,比如:wordpress、织梦CMS、帝国CMS等等,尤其是wordpress程序,受到国内外众多用户的追捧,全球用户可以用亿来计算。而这些网站程序基本上都是基于“php+mysql”组合开发的,可见mysql数据库受欢迎程度。
总之,到目前为止,mysql数据库依然是最受欢迎的数据库,也是使用最多的,它的轻量级、它的开源免费、它的易用性、它的友好性都让它在网站开发中受到开发者的重视和追捧,真可谓是“众星捧月”。
为什么互联公司都用MySQL非oracle,难道只是便宜?
—第一段—
当数据量太大、并发太高时,有两种解决方案:
1、仍然使用集中式方案,提升单台主机的能力。
2、使用分布式方案。
两种方式都可以解决问题,就看高层如何选择了。阿里选择了分布式。
一旦选择了分布式,比如将一个大表分到多个数据库中。如果是Oracle,数据库太多license费用随之上升。如果是MySQL,数据库再多也不用担心License问题。所以,MySQL胜出。
而Hadoop类的纯分布式方案,在OLTP下,优势并不明显。它们是为大数据而生的。
如果选择了集中式,照样有方法解决。因为世界上并不只有BAT,并非Oracle搞不定高并发、大数据量的OLTP系统,就看硬件、和人的投入了。
阿里只所以没有选择集中式,主要是其他团队想上位,他们为高层描绘一个美好的明天。
你没看到阿里的这一轮去O风潮,阿里系老一代DBA都失去主导权了吗。技术圈里很少再有他们的声音。这就是政治,说白点就是江湖。有人的地方就有江湖。阿里系老一代DBA中不乏有拿着千万的股票提前退休的,退出江湖,衣锦还乡,不错啊。
分表、分库后,面临两个问题:
1、要有强大的中间层。阿里在这一块的投入是巨大的。这直接催生了另一派势力。
2、分表、分库后,跨库事务成为问题。这一块至今都没有好的方案解决。
至于互联网业务的发展,当然不会被Oracle限制。到是上面所说的分表的方案,限制了一部分应用。如果当初选择的是集中式方案,应该不会有这方面的限制。
—第二段—
源码修改,阿里所造的较大的修改,据了解只有仿照一个日本人的方式,去掉了MySQL的解析过程。
修改过的MySQL的应用范围,不太清楚。阿里的重心也不在这一块,对源码,要了解。
了解源码的目的是为了更深的了解MySQL的优、缺点,更好的使用MySQL。还有,可以基于MySQL开发一些产品。
这其实是使用开源产品的两大优势:
1、可以更加了解软件运作的原理,更好的设置MySQL。一旦出了故障也可以准确定位。
2、可以更容易开发周边产品。比如开发解析OracleRedo的产品极为困难,但MySQL就不一样了,Redo的格式是公开的。
Oracle现在是越来越封闭,在不使用调试技术的情况下,研究Oracle日渐艰难。许多性能资料、等待事件的本意无从知晓,问题的定位比较困难。开源的MySQL不存在这样的问题。作文网https://www.isanxia.com国内互联网巨头多在开发基于MySQL网络协议的代理层。简单点说你连接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由于开源,可以带来两大优势:
1、可以更加了解软件运作的原理,更好的设置MySQL。一旦出了故障也可以准确定位。
2、可以更容易开发周边产品。比如开发解析OracleRedo的产品极为困难,但MySQL就不一样了,Redo的格式是公开的。
Oracle现在是越来越封闭,在不使用调试技术的情况下,研究Oracle日渐艰难。许多性能资料、等待事件的本意无从知晓,问题的定位比较困难。开源的MySQL不存在这样的问题。
国内互联网巨头多在开发基于MySQL网络协议的代理层。简单点说你连接MySQL,其实是连接了代理层,由代理层把你的SQL发到某个MySQL库中执行,如果是OLAP型SQL,由代理层用协调器,将SQL分布到多个MySQL库中执行,再由代理层合并结果。
如果下层是Oracle,这样的代理层开发极为困难,因为要全面了解网络协议。如果是MySQL则不同了。
这篇关于为什么大部分互联网公司使用的数据库都是MySQL数据库?的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-24MySQL集群部署入门教程
- 2024-12-24部署MySQL集群学习:新手入门教程
- 2024-12-24部署MySQL集群入门:一步一步搭建指南
- 2024-12-07MySQL读写分离入门:轻松掌握数据库读写分离技术
- 2024-12-07MySQL读写分离入门教程
- 2024-12-07MySQL分库分表入门详解
- 2024-12-07MySQL分库分表入门指南
- 2024-12-07MySQL慢查询入门:快速掌握性能优化技巧
- 2024-12-07MySQL入门:新手必读的简单教程
- 2024-12-07MySQL入门:从零开始学习MySQL数据库