具体环境分析MySQL不适用理由
2008-02-23 07:39:34来源:互联网 阅读 ()
【IT专家网独家】在我负责管理一家技术咨询公司的时候,我听到了一些不使用MySQL的理由。虽然很多理由都是出于误解的,但是的确存在着一部分很充分的不使用MySQL的理由。当然,现实的情况会根据环境有所不同,但是在每个情况下,我觉得拒绝任何数据库技术应该基于合理的理由,而不是根据某些疲惫不堪的数据库管理员(DBA)的意见。为了达到这样的目的,我在这篇文章中列出了八条不使用MySQL的理由。
首先,不使用某种技术的理由和使用这个技术的理由在本质上不同。常常,反对某些东西的理由会更加让人注意。我们可能需要几条理由才会真正的使用这个技术,但是只要一个理由就会让我们止步。软件的选择就是这样的决定,仅有一个理由是决不足够促使我们做出肯定的决定,但是个充分的负面理由会否定很多积极的因素。
虽然有一长串关系数据库管理系统(RDBMS)能够供我们选择,但是我将对比限制在几个最常用的产品上。虽然全面的对比很少,还是存在着很多技术上的比较。在这里,我们只关心“正规”理由。
MySQL使用GPL
最重要的理由优先。在这里并不适合GNU General Public License,并且也不应该是数据库技术的选择。很明显,GPL许可证对很多环境是积极的,但是对于其他一些环境,GPL的软件是没有希望的。在这些情况下,连PostgreSQL的BSD许可证仍然太“开放”,那么一个商业的许可证会更加适合。
MySQL不使用GPL
在一些情况下,MySQL是收费的,这样GPL可能不能很好的服务于这些情况。假如您想要将这个数据库的许可证和您自己的项目一起销售,您的项目一定要采用相似的许可证,或您需要购买商业许可证。假如这个因素改变了您的软件的销售方式,您需要处理由于必须支持MySQL的多个版本或配置而引起的额外的负担(这会增加终端用户的成本),或存在由于MySQL的使用造成的不合理的影响。在这些情况下,一些软件分销商可能倾向于采用其他的产品,比如BSD许可证的PostgreSQL。
和现有环境的集成
我知道大型的IT公司会有Oracle和Sybase的单位软件使用权(Site License),连同很多MS-SQL Server的专有许可证(specific license)。在这些公司中,这种MS-SQL的实例主要是各部门的无知职员造成的,他们不知道他们已花钱购买了其他数据库的site license。在这种环境下,再加入MySQL(或其他的数据库)是不明智的想法,假如DBA已有太多环境需要处理。在存在已有数据库的情况下,假如维护的是个通用的平台,那么很明显维护的负担会降低。进一步,假如这个公司已有了使用某个私有系统的许可证,那么使用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)的一致性在当一些存储过程或函数被用于修改数据库而造成死机的情况下还是无法确保的。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇: 使用ODBC接口访问MySQL
下一篇: SQL语句因编写不当 可能导致系统不安全
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash