对于程序开发人员而言,目前使用最流行的两种后台数据库即为mysql and sql server。这两者最基本的相似之处在于数据存储和属于查询系统。你可以使用sql来访问这两种数据库的数据,因为它们都支持ansi-sql。还有,这两种数据库系统都支持二进制关键词和关键索引,这就大大地加快了查询速度。同时,二者也都提供支持xml的各种格式。
除了在显而易见的软件价格上的区别之外,这两个产品还有什么明显的区别吗?在这二者之间你是如何选择的?让我们看看这两个产品的主要的不同之处,包括发行费用,性能以及它们的安全性。
根本的区别是它们遵循的基本原则
二者所遵循的基本原则是它们的主要区别:开放vs保守。sql服务器的狭隘的,保守的存储引擎与mysql 服务器的可扩展,开放的存储引擎绝然不同。虽然你可以使用sql服务器的sybase引擎,但mysql能够提供更多种的选择,如myisam, heap, innodb, and berkeley db。mysql不完全支持陌生的关键词,所以它比sql服务器要少一些相关的数据库。同时,mysql也缺乏一些存储程序的功能,比如myisam引擎联支持交换功能。
发行费用:mysql不全是免费,但很便宜
当提及发行的费用,这两个产品采用两种绝然不同的决策。对于sql服务器,获取一个免费的开发费用最常的方式是购买微软的office或者visual studio的费用。但是,如果你想用于商业产品的开发,你必须还要购买sql server standard edition。学校或非赢利的企业可以不考虑这一附加的费用。
性能:先进的mysql
纯粹就性能而言,mysql是相当出色的,因为它包含一个缺省桌面格式myisam。myisam 数据库与磁盘非常地兼容而不占用过多的cpu和内存。mysql可以运行于windows系统而不会发生冲突,在unix或类似unix系统上运行则更好。你还可以通过使用64位处理器来获取额外的一些性能。因为mysql在内部里很多时候都使用64位的整数处理。yahoo!商业网站就使用mysql 作为后台数据库。
当提及软件的性能,sql服务器的稳定性要比它的竞争对手强很多。但是,这些特性也要付出代价的。比如,必须增加额外复杂操作,磁盘存储,内存损耗等等。如果你的硬件和软件不能充分支持sql服务器,我建议你最好选择其他如dbms数据库,因为这样你会得到更好的结果。
这两者数据库都能够在.net或j2ee下运行正常,同样,都能够利用raid。
安全功能
mysql有一个用于改变数据的二进制日志。因为它是二进制,这一日志能够快速地从主机上复制数据到客户机上。即使服务器崩溃,这一二进制日志也会保持完整,而且复制的部分也不会受到损坏。
在sql服务器中,你也可以记录sql的有关查询,但这需要付出很高的代价。
安全性
这两个产品都有自己完整的安全机制。只要你遵循这些安全机制,一般程序都不会出现什么问题。这两者都使用缺省的ip端口,但是有时候很不幸,这些ip也会被一些黑客闯入。当然,你也可以自己设置这些ip端口。
恢复性:先进的sql服务器
恢复性也是mysql的一个特点,这主要表现在myisam配置中。这种方式有它固有的缺欠,如果你不慎损坏数据库,结果可能会导致所有的数据丢失。然而,对于sql服务器而言就表现得很稳键。sql服务器能够时刻监测数据交换点并能够把数据库损坏的过程保存下来。
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器