MySQL优化不在于数据库本身,在于架构设计
4年前,当我第一次接触MySQL时,还是4.1版本。当时的感觉是这个数据库怎么这么“小”:安装文件小,只有不到20M;支持功能少,连基本的视图、过程、分区等功能都不支持;入门简单,几乎一天就可以熟练使用。不仅如此,使用起来也感觉比较“怪异”,创建表时还要指定“MyISAM”、“InnoDB”这样奇怪的“存储引擎”,表名还要分大小写。这对当时已经习惯ORACLE这样“大型”数据库的我来说,简直就像退回到了旧石器时代,心想虽然免费,但这样的数据库能用吗?
随着工作的需要,对MySQL的了解慢慢地多了起来,原来的一些观念也逐渐发生了改变:虽然功能少,但占用磁盘空间小,而且对于开发使用来说,主要的功能基本都有,尤其是在MySQL 5.0发布之后,一些常用功能更加完善,而对于功能庞大的Oracle来说,近一个GB的安装文件中,可能真正经常使用到的功能最多也就20%;虽然使用时要指定各种各样的“存储引擎”,但这些存储引擎却是八仙过海,各有各的“神通”,在不同的使用场景中,我们可以灵活地按需进行选择,尽可能地优化数据库性能;尤其是MySQL的开源策略,越来越觉得它是MySQL能够普及的一个最大特点。首先,在满足GPL协议的情况下,MySQL可以任意下载并可以商用,这使得企业信息化建设的成本大大降低,这也是近几年互联网行业发展极快的原因之一;其次,开源的特性使得大家都可以对数据库源码进行一些个性化的修改,用来提高数据库的性能或增加新的功能,而这些改进反过来也使得更多使用者从中受益。
在互联网行业,MySQL目前已经使用非常广泛,但相关的资料和书籍却一直比较缺乏。在已出版的中文图书中,MySQL相关的书屈指可数,专门介绍MySQL的书更是凤毛麟角。一年前,我和几位同事一起合作写了一本《深入浅出MySQL》,当时写书的初衷是将工作中使用MySQL的一些经验记录下来,希望使更多的MySQL初学者少走些弯路。出版之后,市场的反应有点出乎我们的意料,读者关注度一直比较高,细想之下,也许就是因为系统介绍MySQL的中文书籍和资料实在太少了。很多读者看过后提出了不少批评意见和建议,其中较多读者指出 MySQL的架构设计和优化内容偏少。熟悉MySQL的读者一般都知道,MySQL最大的问题就是在大数据量和高并发环境下和商业数据库的性能差别较大,因此对MySQL的优化更多的不在于数据库本身,而在于架构的设计,即如何通过分表、分库、复制、Cache等技术使得数据库能合理分配访问压力。如何来进行架构设计则更多的取决于设计者的经验,市场上相关资料很少能够见到,而本书恰恰弥补了这一空白。
虽素未谋面,却早已得知作者在写一本MySQL的大作,内容主要是MySQL架构设计和优化方面的。有幸提前看到了部分原稿,感觉文笔流畅、思路严谨、图文并茂,最重要的是内容很实用,相信此书的出版会给广大互联网朋友带来很多收获!
在写本文的前一天,业界发生了一个令人震惊的收购,Oracle将以74亿美元的价格收购SUN,这也使得昔日数据库领域的两个重要竞争对手Oracle和MySQL成为了一家,数据库的市场格局因此也将发生重大改变,MySQL能否会在Oracle这样一个对数据库系统有着极深理解的公司的主导下给大家带来更多的惊喜呢?让我们都拭目以待吧!
翟振兴
网易高级DBA
《深入浅出MySQL》一书主要作者
Blog:http://zhaizhenxing.blog.51cto.com/
于2009年4月