功能比较

 

   作为一个成熟的数据库管理系统,要满足各种各样的商业需求,功能肯定是会被列入重点参考对象的。Mysql的早期版本功能非常简单,只能做一些基础的结构化数据存取操作,但是经过多年的改进和完善之后,现在已经具备了所有通用数据库管理系统需要的相关功能。

 

Mysql基本实现了ANSI SQL  92的大部分标准,仅有少部份并不经常被使用的没有实现。比如在字段类型支持方面,另一个著名的开源数据库postgreSQL支持的类型是最完整的,。在事务支持的类型是最完整的,而oracle和其他一些商业数据库(比如DB2、Sybase等)较mysql要相对少一些。这一点,我们可以通过TCX的Crash-me测试套件得出测试报告得知。

 

不过在编程支持方面,mysql和其他数据库相比还有一定差距,虽然最新版本的mysql已经开始提供一些简单的可编程支持,如开始支持produre、funtion、trigger等,但是所支持的功能还比较有限,和其他几大商用数据库管理系统相比,还存在较大的不足。如oracle有强大的PL/SQL,Sqlserver有T-SQL,postgresql也有功能很完善的PL/PGSQL的支持。

 

 

   整体来说,虽然在功能方面mysql数据库作为一个通用的数据库管理系统暂时还无法和posgresql相比,但是其功能完全可以满足我们的通用商业需求,提供足够强大的服务。而且不管是哪一种数据库在功能方面都不敢声称自己比其他任何一款商用数据库各管理系统都强,甚至都不敢声称能够拥有某类数据库产品的所有功能。因为每一款数据库管理系统都有自身的优势,也有自身的局限,这都说明每一款产品重点服务的方向不一样。

 

易用性比较

 

    从系统易用性方面来比较,每一个使用过Mysql的用户都能明显地感觉出Mysql在这方面的优势的所在,尤其是相对于一些大型商业数据库管理系统,如oracle、DB2及sybase。对于普通用户来说,它们的操作难易程度明显不处于一个级别。Mysql一直都奉行简单易用的原则,也正是这一特性吸引了大量的初级数据库用户。这一批又一批的初级用户,在经过了几年的成长之后,很多都已经成为了高级数据库用户,而且也一直都在伴随着mysql成长。

 

从安装方面来说,Mysql安装包大小仅100MB,与那几大商业数据库相比完全不是一个数量级。它的安装也比oracle等商业数据库容易很多,不论是通过已经编译好的二进制分发包,还是通过源码编译安装,都非常简单。

 

   再从数据库创建方面比较,mysql仅仅需要一个简单的create database命令即可在瞬间完成建库的动作,而oracle数据库与之相比,创建一个数据库简直就是一个庞大的工程。当然,二者在概念上存在一定差别也不可否认。

 

 

性能比较

 

    性能高一直是mysql引以自豪的一个特点。在权威的第三方评测机构多次测试比较各种数据库TPCC值的过程中,mysql一直都非常优异的表现,而且在其他所有商用的通用数据库管理系统中,仅仅有oracle数据库能够与其一较高下。

 

   Mysql一直以来奉行一个原则,那就是在保证足够稳定性的前提下,尽可能地提高自身的处理能力。也就是说,在性能和功能方面,mysql第一考虑的要素主要还是性能,mysql希望能够在满足客户99%的需求前提下,将剩余的所有精力都用来努力提高系统性能,而不希望自己是一个比其他任何数据库的功能都要强大的产品。

 

 

可靠性

 

   关于可靠性的比较,并没有太多详细的评测比较数据,但是从目前业界的反映中可以了解到,几大商业厂商的数据库之可靠性肯定是没有太多问题。但是作为开源数据库管理系统代表,Mysql也有非常优异的表现,而并不是像有些人心中所怀疑的那样,以为不是商业厂商提供的,就会不够稳定、不够健壮。从当前最火的facebook这样大型的网站都是使用mysql数据库就可以看出,mysql在稳定可靠性方面,并不会比商业厂商的产品逊色太多。而且排在全球前10位大型网站里面,大部分都有部分业务是运行mysql数据库环境上的,如yahoo、google等。

 

   总体来说,mysql数据库在发展过程中一直追求三项原则:简单、高效、可靠。从上面简单的比较中也可以看出,mysql在这三项原则上面,没有哪一项是做得不好的。而且,虽然功能并不是mysql自身追求的原则之一,但是考虑到当前用户量急剧增长,用户需求越来越多样化,mysql也不得不在功能方面作出大量的努力,以不断满足客户的新需求。比如最新版本中出现的Eent scheduler(类似于oracle的job功能)、partion功能,自主研发的maria存储引擎在功能方面的扩展,Falcon存储引擎对事务的支持等,都证明了mysql在功能方面也开始了不懈的努力。

 

 

 任何一种产品,都不可能是绝对完美的,也不可能适用于所有用户,我们只有衡量了每一种产品的各种特性之后,从中选择出一种最适合自己的产品。