涂抹MySQL--第1章 开源运动与开源软件MySQL - 1.2MySQL的悄然而至(4)

2.5 向前向前向前

自从进入被收购的漩涡,MySQL的发展虽然不至于完全停滞,可是也大受影响,Oracle深知,当务之急必须先维稳。因此完成对SUN公司的收购案,将MySQL纳入囊中之后,将原有MySQL的版本划分和分支重新整理,6.0版本被取消,5.15.5版本不断进行BUG修复,并放出新的beta版本(不能否认,SUN公司之前也在进行若干准备工作)

Oracle对着业界喊:我们会支持MySQL,比SUN投入更多的精力,来开发和支持它;

Oracle对着社区喊:老乡们,都出来吧,皇军是来送粮食的。

201012月,MySQ 5.5 GA版本正式对外发布,对此,MySQL公司的前CEO(就是那位Marten Micko)曾评论说,5.5版本可能是有史以来最好的版本。我以一个过来人的身份,尽量站在客观的角度来评价,我可以负责任地说,他说的是对的,在MySQL5.5版本中,Oracle完全像是在特性打包大放送。

提几个比较重量级的变更吧。首先,MySQL默认的存储引擎变更为InnoDB,尽管多少年前InnoDB就已经作为事实上的默认存储引擎,但是其默认地位获得官方承认,是从5.5版本开始的。除此之外,由于InnoDB引擎的开发商Innobase早已被Oracle公司收购,如今可算做同一家公司的内部项目,针对InnoDB引擎细节的提升相当的多,比如说对于适配Hash索引,I/O子系统性能提升,引入多回滚段,提供分组提交(Group Commit),对于多核的高效利用等等。

针对复制特性,在MySQL 5.5版本中,官方的半同步复制特性千呼万唤始出来;分区特性方面,功能也得到较大增强,LIST分区和RANGE分区增加,基于指定列的列值做为分区条件,这样就可以较为简单地基于日期及字符值进行分区了,删除记录时,可以通过ALTER TABLE ... TRUNCATE PARTITION语句快速删除指定分区的数据,这类改进对于熟悉Oracle数据库的朋友们来说会感到颇为亲切,没错,不管是语法还是功能,与Oracle数据库中的同类功能一脉相承,MySQL 5.5版本对分区特性的功能提升,对于分区功能的深度用户来说,绝对是项重大喜讯。

此外,在字符集方面,有一个细节不得不提,MySQL 5.5版本新引入了UTF16UTF32UTF8MB4字符集。同学们可能会想,新支持几个字符集有什么了不起,这也算重点特性吗?呃,这个,可以算,因为这些字符集的引入很有背景。

MySQL数据库真正兴起,一个非常重要的原因是赶上了互联网的浪潮,其自身也在互联网企业中被广泛使用。而随着移动互联网的兴起,iPhone等苹果设备的畅销,使用MySQL 5.1及之前版本来存储数据的企业可能会发现,他们遇到问题了。对于iOS的内置表情(emoji)MySQL5.1及之前版本中,不管字符集如何设置,保存时总会为乱码,即使设置为UTF8字符集也无用,因为即使是UTF8字符集,存储单个字符最大只有3个字节,但对于像emoji表情这样的特殊字符,需要用4个字符来存储,在5.1版本,对此毫无办法。

MySQL 5.5版本新引入了UTF8MB4字符集,做为UTF8字符集的超集,它不仅能够支持所有UTF8能够支持的字符,而且还能够使用4个字节来保存字符,这下需要使用emoji字符的应用有救了。国外的情况咱不了解,单就国内来说,着实掀起一阵升级至MySQL 5.5的浪潮(没办法,不升级不行啊,瞅瞅身边智能移动终端有多普及、移动互联网有多火热,这部分用户的诉求老板说了必须满足,小小DBA哪敢忽视)

20132月,MySQL 5.6 GA版本正式发布,毫无疑问,这是迄今为止最棒的一个版本。5.6版本中都提供哪些激动人心的功能,这里不剧透了,同学们,本书中的所有操作,如非特别注明,正是基于最新的MySQL 5.6.12版本,后面有整整一本书的内容等待你们去发掘。

2.6 以开源的心态学开源

前面曾经提到过,MySQL数据库得以兴起,一项重要的原因就是赶上了互联网的浪潮,切实满足互联网应用中的实际需求。

举例来说,早在1996年,当PHP在互联网开发中逐渐热门起来的时候,他们就开始与PHP的创建人沟通联络,获得一线的实际需求,比如分页在网站中很常用,那么他们就加入了LIMIT子句(在标准SQL语法的基础之上扩展),这样就非常实用。所以一开始,即使MySQL的功能不多(好吧,是很少),但是他们距离最终用户非常近,提供了用户想要的东西,并得到了用户的认可。

开源,可视做帮助他们快速成长的另一大助力。他们从用户那里获取真实的需求,同时,他们也能从开发者那里得到众多的反馈。因为开源,它的每一行代码都是开放的,所有人都能看到,当软件出现BUG,很快就会有人告诉你问题并协助解决,同样也有众多的工程师开发自己感兴趣的工具,并最终被集成到官方版本中,成为官方的产品。当然,大多数的工具不会被集成到官方产品中,但是这并不妨碍、也不会影响众多开发者,持续提供新的工具或插件的热情。对于用户来说,可能会需要用到某项功能,但因为该功能应用场景极窄,官方没有可能进行针对性的开发,可是在开源生态圈中,就有机会遇到由第三方工程师开发的、提供相应功能的工具。

本书主题是讲MySQL,不过并不限于MySQL,内容中将出现众多第三方的开源工具(或脚本),这也是开源软件的特点之一。

传统关系型数据库软件如ORACLE/MSSQL等,它们自身的功能就已足够强大,再加上软件厂商实力强悍,应用体系完整,由他们主导的情况下,恨不能所有东西都用他们自己的产品,这种模式并非绝对不好,只是某些情况下,用户可能会有上船容易、想下去时艰难的感受。

开源软件就是另一种风格了,以MySQL数据库为例,尽管官方仍在不断完善功能,但是相比其它大型数据库软件,仍然有明显的差距。可是这一点为什么没有成为制约它发展的要素呢,就是因为有大量第三方软件的支持。也许某项功能官方并未提供,或实现的并不优雅,没关系,总能找到合乎需求的第三方工具。对于一些小需求,自己写些小的脚本更是普遍,更何况MySQL是开源软件,对于技术功底深厚,动手能力强的朋友,还可以自己动手二次开发,实现自己专用的分支版本。

别人的东西可以直接拿来就用,不需要重复造轮子,同样,自己写出了得意的工具,也能够分享出去,方便他人,回馈社区。这,就是开源。

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7607759/viewspace-1192634/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/7607759/viewspace-1192634/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值