MySQL趋势与前景技术分享

分享内容


首先是自我介绍,MySQL趋势介绍,MYSQL在中国应用情况,以及相关就业情景分析,最后介绍MySQL在企业互联网中的高可用架构


首先是自我介绍,MySQL趋势介绍,MYSQL在中国应用情况,以及相关就业情景分析,最后介绍MySQL在企业互联网中的高可用架构


首先介绍一下我自己,我是姜承尧,现在在网易杭州研究院,负责这个数据库技术,因为我从业也差不多十多年的时间,出版过一些MYSQL的书籍,另外是MySQL开源分支版本的创始人,由于在MySQL所做的贡献,被Oracle授予Oracle MySQL ACE头衔

那么网易杭州研究院业内知名度比较高,都是来自浙大的数据库实验室,本身对数据库是具有内核开发级别能力,本人所在的技术组,目前是负责网易MySQL的内核开发,数据库的开发运维,分布式MYSQL中间件开发,NoSQLmangoHbase,大数据等一些数据库相关的工作。

下边这张图是本人的数据库,定期分享一些内容,大家感兴趣可以关注!

以下3本书,是本人撰写的书籍,《MYSQL内幕》讲述MySQL数据库最为重要InnoDB存储引擎的相关运作机制,更好的进行数据库调优与架构设计。

SQL编程》讲述MySQL数据库的SQL相关过程,如何编写最优的SQL应用。去年《MySQL内核》,本身和《MYSQL内幕》系列有很大不同,主要讲述InnoDB存储引擎源码分析,不是简单工作原理,使读者完全理解内部的运行机制。得到美国InnoDB存储引擎团队负责人,Oracle社区负责人的推荐。更适合一些资深开发人员,内核开发人员,资深DBA,数据库研究方向的在校生,如果想要签名版本,可扫右边的二维码。


我来介绍一下MYSQL数据库的趋势,有2个数值很重要,全球前20大互联网网站有90%使用是使用MYSQL使用数据库,另外80%大数据平台都是与MYSQL数据库相结合。

简单来说,我这边归纳了一下5点,

1、 MYSQL数据库最为流行的开源数据库

2、 全球前20大互联网网站有18家使用了MYSQL

3、 10大独立软件开发商,有8家采用了MySQL数据库

4、 在云的平台架构下,市场占有率第一的云数据库。

5、 大数据平台下,80%与大数据平台所集成,因为MySQL是互联网应用,互联网负责产生内容,Hadoop负责内容消费,形成开源的趋势,OLTP在线事务使用MYSQL数据库,OLAP离线分析,使用Hadoop发展趋势。


这张图显示了全球前20大网站,有2家没有使用MYSQL,是微软公司,另外18家都是用MYSQL,并作为核心数据库,通过这些数据,Google有上万台,Facebook4000千运行了MYSQL服务器,那这个规模相对于传统的商业性关系数据库来说是难以承受的!


这张图显示了MYSQL数据库趋势,左边是传统企业,例如EabyFacebookGoogle,右边是独立软件服务商,下面是云服务商,毫无疑问,MySQL在云平台市场占有率第一的数据库,在云平台上申请一个数据库,也就意味着申请了一个MySQL数据库。


MYSQL与传统商业数据库的区别是什么,MYSQL遵循开源协议,主要应用OLTP在线事务,相对于商业数据库来说,服务器是比较多的,应用环境主要是互联万个,OracleSQL Sever是传统的商业收费数据库,通常是OLTPOLAP混合使用的。

Oracle数据库主要运行IOEIIBM的服务器,OOracle数据库,EEMC的存储,整个架构成本较高,多用于传统企业。

SQL Sever受限操作系统,Windows下,同样传统企业使用比较多。


MYSQL是开源,发展历程比较曲折,分支和版本比较多,做少是由芬兰人Monty创建,可以追溯到1979年,芬兰人为开源技术做出了巨大贡献,Linux创始人Linus芬兰人,MYSQL创始人是芬兰人,InnoDB存储创始人Heikki芬兰人,其中LinusHeikki都毕业于芬兰赫尔辛基大学。芬兰字开源做出重大贡献。

MYSQL 1.0最早发布于1996年,通常下载不到,所以也没有引起很大的反响。

2001MYSQL 3.23 发布,最早接触版本,Monty移植到了LinuxFreeBSDsolarsWindows平台上,MySQLLinux操作系统配合,占据大部分开源市场,逐渐形成LAMP的互联网统治地位。Yahoo是最早开始使用MySQL的大型互联网企业之一。


但是MySQL发展比较波折,1995-2008 MySQL AB经营,2008-2010ABsun 收购,2010至今SunOracle收购,MySQLsun收购后,创始人选择离开,创立了MariaDB公司,从此MySQL出现分裂,有很多分支版本,也导致了我们选择上的困惑。

这边列出了MySQL AB拥有很多投资,例如红帽,SAPIntel等,资本驱动开源项目,与现在MangoDB非常像。


出现个4个分支,如何选择就比较困难,Drizzle是比较学术的分支版本,由前MYSQL CTO创建,采用标准C++重构各模块。

Oracle MYSQL是官方版本,是本人推荐大家使用的官方版本,用户首选。

MariaDB是由也是由MySQL创始人创办,现在看,与现在官方的MYSQL很不兼容,一旦你选择了MariaDB在迁回MYSQL很不方便。

Percona是由MySQL性能团队成员创建的MYSQL技术服务公司,拥有自己基于MYSQL分支版Percona数据库,主要是为MYSQL做调优,有一定的卖点。

但是已经不推荐这个版本了,特性也越来越小,也不是由很显著的变化,在MYSQL新版中这些Percona性能都有可能拥有。


那么MySQLMariaDB如何选择这张图很重要,MariaDB没有核心存储引擎开发人员,其余都有专门开发人员,所以一旦InnoDB出现问题,MariaDB就很麻烦,未来两者也不兼容,所以姜老师推荐,Oracle官方MySQL数据库。


而有很多人不是使用MySQL的原因,是因为Oracle是一个收费的公司,很怕MYSQL付费,这个不必担心,MYSQL已经被Oracle收购5年了,不但没有收费,还投入了很多人力,所以大家不必担心。另外一点Oracle是最懂数据库的公司,没有之一。MYSQL新版本功能不断完善,以往遗留问题,在新版本都在修复,比如索引并发性能,组提交,并行复制这些功能。

所以我认为,OracleMYSQL技术服务公司,就像redheadLinux技术服务公司,都是开源,遵循GPL协议,Oracle是赶不到MYSQL,也遵循GPL协议,只是做后续开发、架构设计。


MYSQL数据库在中国的应用情况,已经是国内互联网公司默认标配,人才储配,架构、解决方案储备非常完善了。而传统企业看,迅速意识到互联网重要性,国家也支持,MYSQL一定是他们的首选方案。

而随着淘宝提出去IOE的口号,Oracle数据用MYSQL替换也变得是一种可行的数据库了。

而去IOE不是简单的软件硬件替代,而是国家战略安全毕然要求,斯诺登事件让国家感到安全非常重要,而数据库核心中的基础部件,信息存放在数据库中,MYSQL虽没有Oracle功能强大,但是他是开源,开源意味着可控,符合国家发展战略,比起其他数据库,披着国产外衣的国外数据库,技术人员更为完善,安全更可控。这是国产数据库没有办法做到的原因。


具体看一下去IOE,就是去掉IBM小型机,Oracle数据库,EMC存储设备,最初淘宝提出,其实节省资源只是一部分原因,最重要的是上述这3个技术要求是不可控的,一旦出问题,无法追踪,智能找厂商,而MYSQL是开源的,我能可以做一些定制化的内容,源代码开放,对技术自主可控的要求。


这张图是一些中国厂商使用MYSQL服务器的公司(中国银行,银联,移动,),国内的云服务厂商都支持MYSQL数据库,并作为核心数据库来服务,阿里云甚至不支持Oracle云数据库,极少云服务厂商不支持MYSQL数据库。不论是传统企业还是云服务商,都开始使用MYSQL服务。


放眼全球,最为流行,就业机会巨大,上述为相应数据,每月进行流行度排名,
MYSQL超过SQL Sever已经排在第二,PostgreSQL跌倒第5名了。Oracle虽然管理非常昂贵的,薪水相比MYSQL等级高,也是IT行业特性所决定。


最后一部分带来MYSQL高可用架构说明,可能大家之前使用传统企业或者Oracle高可用架构,在MYSQL下反而使用的比较少的。通常来说,采用共享存数机制来实现高可用,这是实现高可用最简单的一种方式。微软SQLOracle以及RAC都需要共享存储来实现高可用方案。然而,在互联网企业中,非常少使用共享存储来实现高可用,基于互联网企业特性,共享存储成本很高,刚刚诞生的互联网企业刚刚成立,没有资金来维持高成本。另外从架构角度,共享存储也是一个单点,只是花了资金买了设备,通常不会宕。但是如果宕。你只能等着厂商的人来处理,技术不能自主可控,也就是互联网企业不适用共享存储的原因了。

MYSQL数据库采用高可用,99%都是基于复制技术,复制采用日志同步技术,逻辑复制,具有更好逻辑性,5.7版本以上复制可以完全保证主从数据不丢失,提供一种无损数据模式。

网易线上生产环境大规模采用无损复制,运行很长时间,这种技术输出到国内某大型银行生产环境线上使用,得到验证,通过MYSQL复制,可以得到3个维度。高可靠性,90%以上高可靠性,高可用性。数据可靠性保证的是保证在任何情况下基于MYSQL复制做高可用都能保真主从数据不丢失,并且一致。那么高可用MYSQL是异步的,性能是最好的,发生宕机,允许有一小部分的丢失。90%可靠性是指,通常采用可靠模式,发生意外下,从无损的模式切换到异步模式,保证可用性,可靠性,达到可用性与可靠性折中。可靠性是指的是数据完全不丢失,主从数据不丢失,主从数据一致性,原理很简单,一个事务提交之前,现将日志传输,保证日志传输,才将数据传输,这样就保证了数据的一致性。大部分互联网公司都是采用同步机制来实现这种高可用架构!


讲师简介

姜老师

目前负责公司所有数据库,包含Oracle、Microsoft SQLServer、MySQL的自动化运维平台的开发。

有着近10年MySQL数据库的运维与开发经验。擅长于MySQL数据库的性能调优、故障诊断、高可用架构设计、容量规划。不仅是知识的传授者,更是服务型领导力的实践者。由于在MySQL数据库领导力发展领域的杰出贡献,于2013年被授予Oracle MySQL ACE头衔

你可能感兴趣的:(database)