技术开发 频道

SQL Server生于Windows,毁于Windows?

    MySQL 插件式存储引擎的架构,是其他任何数据库都不具备的。该架构在很大程度上面给 MySQL 使用人员在存储引擎方面的选择带来了极大的灵活性。尤其是最新的 MySQL 所支持的可在线插拔式存储引擎管理方式的架构,给了数据库维护人员在存储引擎的维护方面非常大的便利。

    而MySQL 另一个吸引大量使用者的最大优势就是其 Replication 功能。虽然这并不是 MySQL 所独有的功能,但是 MySQL Replication 实施和维护的便利性,确实是其他数据库难以比拟的。由于其 Replication 的便利性,让 MySQL 在 Scalable 方面具有很大的优势,使大规模系统的扩展不再特别困难。

    三种数据库优劣势分析

    简朝阳表示,在最初选择使用 Oracle 数据库,主要所考虑的是其高并发下优异的性能表现,以及 Oracle 数据库的高稳定性。当然,其业界认可度和技术普及度可能也是一个重要的决策依据。我想任何一个了解多个数据库软件的人都会知道,Oracle所公开的官方文档比任何其他数据库软件都要多出很多。无论是概念原理还是技术细节,Oracle公司都提供了大量的在线文档供大家学习参考,而且是完全免费非的。

    Oracle 数据库的高性能表现,与其UNDO 和锁定实现原理有非常大的关系,个人觉得这也是其最大的核心竞争力所在。其基于 UNDO 所实现的多版本机制,让系统的并发响应能力非常之高,同时也为目前所具有的很多高级特性如 flashback 等功能提供了实现依据。而其去中心化的锁定机制,使得 Oracle 在实现基于行级锁定的时候,仍然让获取和释放锁定所消耗的成本非常低,极大的降低了系统中的各种阻塞现象。

    由于 Oracle 数据库较大的市场和普及程度,基于 Oracle 数据库的各种图形化客户端工具也非常丰富,这对于习惯通过图形化工具来进行各种维护工作的数据库维护人员来说,即使维护非常复杂的 Oracle 数据库也同样变得非常简单。而Oracle本身所提供的丰富的系统表和视图,使用者可以在任意时刻通过基本的 SQL 语句来查看这些系统表和视图里面的动态信息。这让希望了解数据库中各种运行细节的维护人员可以在任何时刻都清晰的了解数据库的运行状态,这在 Performance Tuning 和 Trouble Shooting 的时候非常有用。

    由于Oracle数据库目前比较成熟的运行环境仍然是集中式的,所以其扩展性方面主要还是以主机和存储的 Scale Up 为主。虽然 Oracle 从 9i 开始也提供的 RAC,但是在 OLTP 类型的应用系统中,非常成功的案例仍然不多,在 OLAP 方面的应用可能更多一些,可能这也与 RAC 的 Share Everything 的架构有关吧。由于在 Scale 方面主要依赖硬件设备的 Scale Up,势必会造成其总体成本居高不下的尴尬局面,这也正是目前在慢慢加强 MySQL 数据库来提供业务支撑的一个较为重要的因素。
   
    众所周知,开源数据库中当之无愧的王者 MySQL 之所以能够发展如此的迅猛,与其优异的性能表现,极高的 Scale Out 能力以及开源的特性有非常大的关系。

   而由于开源软件所具有的开放性是其他商业软件不可能做到的。基于其开放性,活跃于开源社区的开源爱好者所编写的大量开源工具,让MySQL数据库的使用以及维护管理工作变得更有乐趣,也更为简单。如非常著名的 InnoTop,Maatkit,MysqlReport等等。而且,如果技术能力允许,我们自己也完全可以根据自己的一些特定需求,为MySQL增加各种 Patch 或者 Plugin,以定制适用于我们特定应用系统的特殊功能。如比较成熟的Memcached Functions For MySQL等。

    随着SQL Server的不断改进优化,在目前较为成熟的数据库软件中,其优异的性能表现在中小企业的应用已经非常广泛,而且性能方面较之前的版本也有了非常大的提高,但与Oracle相比,似乎还有些力不从心。作为各种应用系统非常核心的底层支持系统来说,性能表现无疑是非常重要的一个考虑。但是SQL Server只能安装在Windows上,这势必在某种程度上也限制了他的发展。
综上看来,SQL Server不能像Mysql那样0成本,又不能像Oracle那样有强势的性能表现做支撑,目前,又受到Windows的影响。难道SQL Server真的生于Windows,毁于Windows?

0
相关文章