
1.2 MySQL与其他数据库的区别
前面简单介绍了MySQL的发展历程,从中了解了MySQL快速崛起的必要条件。接下来,通过MySQL在功能、性能,以及其易用性方面和其他主流的数据库做一个基本的比较,来了解一下MySQL成为当下最流行的开源数据库软件的充分条件。
1.2.1 功能比较
作为一个成熟的数据库管理系统,要满足各种各样的商业需求,功能肯定是会被列入重点参考对象的。MySQL虽然在早期版本的时候功能非常简单,只能做一些很基础的结构化数据存取操作,但是经过多年的改进和完善之后,已经基本具备了所有通用数据库管理系统所需要的相关功能。
MySQL基本实现了ANSI SQL 92的大部分标准,仅有少部分并不经常被使用的部分没有实现。比如在字段类型支持方面,另一个著名的开源数据库PostGreSQL支持的类型是最完整的,而Oracle和其他一些商业数据库,比如DB2、Sybase等,较MySQL来说也要相对少一些。在事务支持方面,虽然MySQL的存储引擎InnoDB实现了SQL 92标准所定义的4个事务隔离级别的全部,只是在实现的过程中每一种的实现方式可能有一定的区别,这在当前商用数据库管理系统中都不多见。比如,大名鼎鼎的Oracle数据库就仅实现了其中的两种(Serializable和Read Commited)。
不过在可编程支持方面,MySQL和其他数据库相比还有一定的差距,虽然最新版的MySQL已经开始提供一些简单的可编程支持,如开始支持Procedure、Function、Trigger等,但是所支持的功能还比较有限,和其他几大商用数据库管理系统相比,还存在较大的不足。如Oracle有强大的PL/SQL,SQL Server有T-SQL,PostGreSQL也有功能很完善的PL/PGSQL的支持。
整体来说,虽然在功能方面MySQL数据库作为一个通用的数据库管理系统暂时还无法和PostGreSQL相比,但是其功能完全可以满足通用商业需求,提供足够强大的服务。况且不管是哪一种数据库,在功能方面都不敢声称自己比其他任何一款商用通用数据库管理系统都强,甚至都不敢声称自己拥有某一数据库产品的所有功能。因为每一款数据库管理系统都有其自身的优势,但也有其自身的限制,这只能代表每一款产品所倾向的方向不一样而已。
1.2.2 易用性比较
从系统易用性方面来比较,每一个使用过MySQL的用户都能够明显地感觉出MySQL在这方面与其他通用数据库管理系统之间的优势所在。尤其是相对于一些大型的商业数据库管理系统如Oracle、DB2以及Sybase来说,对于普通用户来说,操作的难易程度明显不处于一个级别。MySQL一直都奉行简单易用的原则,也正是靠这一特性,吸引了大量的初级数据库用户最终选择了MySQL。也正是这一批又一批的初级用户,在经过了几年时间的成长之后,很多都已经成为高级数据库用户,而且也一直都在伴随着MySQL成长。
从安装方面来说,MySQL安装包大小只有100MB左右,这与几大商业数据库相比完全不在一个数量级。安装难易程度也要比Oracle等商业数据库简单很多,不论是通过已经编译好的二进制分发包还是源码编译安装,都非常简单。
再从数据库创建来比较,MySQL只需要一个简单的CREATE DATABASE命令,即可在瞬间完成建库的动作,而Oracle数据库与之相比,创建一个数据库简直就是一个非常庞大的工程。当然,不可否认二者数据库的概念存在一定的差别。
1.2.3 性能比较
性能方面,一直是MySQL引以为自豪的一个特点。在权威的第三方评测机构多次测试较量各种数据库TPCC值的过程中,MySQL一直都有非常优异的表现,而且在其他所有商用的通用数据库管理系统中,只有Oracle数据库能够与其一较高下。至于各种数据库详细的性能数据,可以通过网上第三方评测机构公布的数据了解具体细节信息。
MySQL一直以来奉行一个原则,那就是在保证足够的稳定性的前提下,尽可能地提高自身的处理能力。也就是说,在性能和功能方面,MySQL第一考虑的要素主要还是性能,MySQL希望自己是一个在满足客户99%的功能需求的前提下,花掉剩下的大部分精力来在性能方面努力,而不是希望自己成为一个比其他任何数据库的功能都要强大的数据库产品。
1.2.4 可靠性比较
关于可靠性的比较,并没有太多详细的评测比较数据,但是从目前业界的交流中可以了解到,几大商业厂商的数据库的可靠性肯定是没有太多值得怀疑的。但是作为开源数据库管理系统的代表,MySQL也有非常优异的表现,而并不是像有些人心中所怀疑的那样,因为不是商业厂商所提供,就会不够稳定不够健壮。从Taobao和Baidu这样大型的网站都是使用MySQL数据库,就可以看出MySQL在稳定可靠性方面,并不会比商业厂商的产品有太多逊色。而且排在全球前10位的大型网站里面,大部分都有部分业务是运行在MySQL数据库环境上,如Yahoo、Google等。
总地来说,MySQL数据库在发展过程中一直有自己的三个原则:简单、高效、可靠。从上面的简单比较中也可以看出,在MySQL自己的所有三个原则上面,没有哪一项是做得不好的。而且,虽然功能并不是MySQL自身所追求的三个原则之一,但是考虑到当前用户量的急剧增长,用户需求越来越多样化,MySQL 也不得不在功能方面做出大量的努力,来不断满足客户的新需求。比如最近版本中出现的Partition功能,自主研发的Maria存储引擎在功能方面的扩展支持等,都证明了MySQL在功能方面也开始了不懈的努力。