技术开发 频道

八条不使用MySQL数据库的理由


产品的成熟度

  通过比较,在2009年Oracle将庆祝它的第一个产品发布了30周年,那时MySQL第一个产品的发布时间还不到Oracle的一半。单就自身而言,Microsoft SQL Server仅仅比MySQL早了几年,但是它的第一次发布的产品是基于Sybase的,该产品的比SQL Server早了6年。至于其他著名的开源数据库,在2009年PostgreSQL距离第一次发布已经20年。虽然MySQL并不是市场上最新的数据库,但是还有很多更老、更稳定的可选产品——并且对很多人来说,这个理由已经足够了。公平的讲,以我的观点这个理由并不是反对使用MySQL的特别充分的理由,但是同时,我被逼着告诉一位将为关键任务的应用选择平台的保守IT经理基于这个理由作决定将是错误的。

  功能集的成熟度

  有些人被吸引去编辑MySQL和其他系统的全面的功能比较,以此作为权威的决策工具,但是在很多情况下,这根本就不可能成功。随着各个厂商新版本或者补丁的的发布,这个功能列表很快变得过时。进一步,对某些应用很重要的功能和其他的应用一点关系都没有,这样“10%更多的功能”将是没有结果的度量。真正发挥作用的是在发布的时候功能集是否和需求一致,或者足够一致。

  有时候,你可以绕过一些缺少的功能,比如MySQL 4.1版本中使用join替代子查询。RDBMS中大部分的必要的功能都在MySQL 5.0中实现,但是我们仍然有理由认为这些功能的成熟是避开MySQL的一个可能的理由。比如,缺乏视图、触发器和存储过程是对MySQL由来已久的批评。这些都被MySQL支持超过一年时间了,但是相比之下,在其他的RDBMS中这些功能已经存在超过10年了。

  当然,MySQL团队的开发周期在很多方面都给人留下了深刻的印象。然而,如果用户的性格是排斥新技术,那么长期支持的功能获胜的概率会更大。在这种情况下,上面提到的三个主要的功能就是最近才加入的。即使在MySQL 5.0中,ACID(Atomicity, Consistency, Isolation, Durability)的一致性在当一些存储过程或者函数被用于修改数据库而造成死机的情况下还是无法保证的。

0
相关文章