以下内容摘自书《MySQL性能调优与架构设计》
一、功能比较
作为一个成熟的数据库管理系统,要满足各种各样的商业需求,功能肯定是会被列入重点参考对象的。MySQL的早期版本功能非常简单,只能做一些很基础的结构化数据存取操作,但是经过多年的改进和完善之后,现在它已经基本具备了所有通用数据库管理系统需要的相关功能。
MySQL基本实现了ANSI SQL 92的大部分标准,仅有少部分并不经常被使用的没有实现。比如在字段类型支持方面,另一个著名的开源数据库PostgreSQL支持的类型是最完整的,而Oracle和其他一些商业数据库较MySQL要相对少一些。这一点,我们可以通过TCX的Crash-ne测试套件得出的检测报告得知。在事务支持方面,虽然MySQL自己的存储引擎并没有提供,但是已经通过第三方插件方式存储引擎InnoDB实现SQL 92标准定义的4个事务隔离级别的全部,只是在实现的过程中每一种引擎的实现方式可能有一定的区别,这在当前商用数据库管理系统中并不多见。比如,大名鼎鼎的Oracle数据库就仅仅实现了其中的两种,而PostgreSQL支持4种隔离级别。
不过在编程支持方面MySQL和其他数据库相比还有一定的差距,虽然最新版的MySQL已经开始提供一些简单的可编程支持,如开始支持procedure、function、trigger等,但是所支持的功能还比较有限,和其他几大商用数据库管理系统相比,还存在较大的不足。如Oracle有强大的PL/SQL,SQL Server有T-SQL,PostgreSQL也有功能很完善的PL/PGSQL的支持。
整体来说,虽然在功能方面MySQL数据库作为一个通用的数据库管理系统暂时还无法和PostgreSQL相比,但是其功能完