oracle、MySQL、SQLServer的比较

MySql的优点:
1
MYSQL支持5000万条记录的数据仓库(3.x版本就支持了)

2 MYSQL适应所有平台

3 MYSQL是开源软件开源的东西似乎总是比较实在一点,不会有太多商业化的考虑。
4 学起来简单
5 MYSQL 因为是开源的,所以支持任意修改,也就是说你可以去除你不需要的功能,从而简化MYSQL,提高速度。
6美国西部时间200624日,测试厂商Coverity公司发表声明,称对MySQL数据库软件的源代码进行分析后,结果表明其缺陷数量远远小于商业数据库软件的水平。
7使用CC++编写,并使用了多种编译器进行测试,保证源代码的可移植性
8支持AIXFreeBSDHP-UXLinuxMac OSNovell NetwareOpenBSDOS/2
Wrap
SolarisWindows等多种操作系统

9为多种编程语言提供了API。这些编程语言包括CC++EiffelJavaPerlPHPPythonRubyTcl等。
10支持多线程,充分利用CPU资源
11优化的SQL查询算法,有效地提高查询速度
12既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中提供多语言支持,常见的编码如中文的GB
2312
BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名

13 提供TCP/IPODBCJDBC等多种数据库连接途径
14 提供用于管理、检查、优化数据库操作的管理工具

MySql的缺点:
1MySQL最大的缺点是其安全系统,主要是复杂而非标准,另外只有到调用mysqladmin来重读用户权限时才发生改变。
2MySQL的另一个主要的缺陷之一是缺乏标准的RI(Referential Integrity-RI)机制;Rl限制的缺乏(在给定字段域上的一种固定的范围限制)可以通过大量的数据类型来补偿。
3MySQL没有一种存储过程(Stored
Procedure)
语言,这是对习惯于企业级数据库的程序员的最大限制。

4MySQL不支持热备份。
5MySQL的价格随平台和安装方式变化。LinuxMySQL如果由用户自己或系统管理员而不是第三方安装则是免费的,第三方案则必须付许可费。UnixLinux自行安装免
费、UnixLinux第三方安装200美元,需要一个应用组件200美元。

 

Mssql的优点:
Microsoft SQL Server 2000 能提供超大型系统所需的数据库服务。大型服务器可能有成千上万的用户同时连接到 SQL Server 2000 实例。SQL Server 2000
为这些环境提供了全面的保护,具有防止问题发生的安全措施,例如,可以防止多个用户试图同时更新相同的数据。SQL
Server 2000
还在多个用户之间有效地分配可用资源,比如内存、网络带宽和磁盘 I/O

超大型 Internet 站点可将其数据分开存放在多台服务器上,从而使处理负荷分散到多台计算机上,使站点能为成千上万的并发用户提供服务。
可以在一台计算机上运行多个 SQL Server 2000 实例。例如,一个为其它许多组织提供数据库服务的组织可为每个客户组织单独运行一个 SQL Server 2000 实例,而全部实例可集中在一台计算机上。这样,既隔开了每个客户组织的数据,同时又使服务组织只需管理一台服务器计算机从而减少了费用。
SQL Server 2000 应用程序可在装有 SQL Server
2000
的计算机上运行。该应用程序通过 Windows 进程间通讯
(IPC) 组件(例如共享内存)而非通过网络连接到 SQL
Server 2000
。这使 SQL Server 2000 得以应用于应用程序必须在本地存储数据的小型系统中。

大型 Web 站点和企业级数据处理系统通常会生成大量的数据库处理,超出了一台计算机的支持能力。在这些大型系统中,数据库服务由组成数据库服务层的一组数据库服务器
提供。
SQL Server 2000
不支持采用平衡负荷的聚集形式建立数据库服务层,但支持跨自主服务器组分存数据的机制。尽管每个服务器需分开管理,但组内的各个服务器可共同分担数据库处
理负荷。共享同一工作负荷的一组自主服务器称为服务器联合体。

高可用性
SQL Server 2005的失败转移集群和数据库镜像技术确保企业向员工、客户和合作伙伴提交高度可靠和可用的应用系统。

管理工具
SQL Server 2005引进了一套集成的管理工具和管理应用编程接口(APIs),以提供易用性、可管理性、及对大型SQL
Server
配置的支持。

安全性增强
SQL Server 2005旨在通过数据库加密、更加安全的默认设置、加强的密码政策和细化许可控制、及加强的安全模型等特性,为企业数据提供***别的安全性。

可伸缩性
SQL Server 2005可伸缩性的先进性包括表格分区、复制能力的增强和64位支持。

Mssql的缺点:
1.如果更改范围大到需要对输入存储过程的参数进行更改,或者要更改由其返回的数据,则您仍需要更新程序集中的代码以添加参数、更新
GetValue() 调用,等等,这时候估计比较繁琐了。

2.可移植性差,由于存储过程将应用程序绑定到 SQL
Server
,因此使用存储过程封装业务逻辑将限制应用程序的可移植性。如果应用程序的可移植性在您的环境中非常重要,则将业务逻辑封装在不特定于
RDBMS 的中间层中可能是一个更佳的选择。

3.增加服务器负担

 

Oracle的优点:
1. oracle的优点很多,比如跨平台,这只是oracle众多优点之一,但这对客户来说是非常重要的一个优点。
2. ORACLE的可用性非常强,oracle的组件功能全
3. ORACLE体系先进,所以性能优异
4. Oracle Server是一个对象一关系数据库管理系统。它提供开放的、全面的、和集成的信息管理方法。每个Server由一个
Oracle DB和一个 Oracle
Server
实例组成。它具有场地自治性(Site Autonomy)和提供数据存储透明机制,以此可实现数据存储透明性。每个 Oracle数据库对应唯一的一个实例名SIDOracle数据库服务器启动后,一般至少有以下几个用户:Internal,它不是一个真实的用户名,
而是具有
SYSDBA优先级的Sys用户的别名,它由DBA用户使用来完成数据库的管理任务,包括启动和关闭数据库;Sys,它是一个
DBA用户名,具有最大的数据库操作权限;System,它也是一个
DBA用户名,权限仅次于 Sys用户。

客户端:
为数据库用户操作端,由应用、工具、SQL* NET组成,用户操作数据库时,必须连接到一服务器,该数据库称为本地数据库(Local DB)。在网络环境下其它服务器上的 DB称为远程数据库(Remote
DB
)。用户要存取远程 DB上的数据时,必须建立数据库链。

Oracle数据库的体系结构包括物理存储结构和逻辑存储结构。由于它们是相分离的,所以在管理数据的物理存储结构时并不会影响对逻辑存储结构的存取。
5. 能在所有主流平台上运行(包括 windows)。完全支持所有的工业标准。采用完全开放策略。可以使客户选择最适合的解决方案。对开发商全力支持。
6. 平行服务器通过使一组结点共享同一簇中的工作来扩展windownt的能力,提供高可用性和高伸缩性的簇的解决方案。
如果windowsNT不能满足需要, 用户可以把数据库移到UNIX中。
7. 安全性获得最高认证级别的ISO标准认证。
8. 性能最高, 保持windowsNT下的TPC-DTPC-C的世界记录。
9. 多层次网络计算,支持多种工业标准,可以用ODBC,JDBC,OCI等网络客户连接
10. 长时间的开发经验,完全向下兼容。得到广泛的应用。完全没有风险。

Oracle的缺点:
1 操作性较复杂, 同时提供GUI和命令行,在windowsNTunix下操作相同。
2 价格昂贵

 

MySqlMssql的异同:
根本的区别是它们遵循的基本原则

二者所遵循的基本原则是它们的主要区别:开放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是相当出色的,因为它包含一个缺省桌面格式MyISAMMyISAM 数据库与磁盘非常地兼容而不占用过多的CPU和内存。MySQL可以运行于Windows系统而不会发生冲突,在UNIX或类似UNIX系统上运行则更好。你还可以通过使用64位处理器来获取额外的一些性能。因为MySQL在内部里很多时候都使用64位的整数处理。Yahoo!商业网站就使用MySQL
作为后台数据库。

当提及软件的性能,SQL服务器的稳定性要比它的竞争对手强很多。但是,这些特性也要付出代价的。比如,必须增加额外复杂操作,磁盘存储,内存损耗等等。如果你的硬件和软件不能充分支持SQL服务器,我建议你最好选择其他如DBMS数据库,因为这样你会得到更好的结果。

安全功能

MySQL有一个用于改变数据的二进制日志。因为它是二进制,这一日志能够快速地从主机上复制数据到客户机上。即使服务器崩溃,这一二进制日志也会保持完整,而且复制的部分也不会受到损坏。

SQL服务器中,你也可以记录SQL的有关查询,但这需要付出很高的代价。

安全性

这两个产品都有自己完整的安全机制。只要你遵循这些安全机制,一般程序都不会出现什么问题。这两者都使用缺省的IP端口,但是有时候很不幸,这些IP也会被一些黑客闯入。当然,你也可以自己设置这些IP端口。

恢复性:先进的SQL服务器

恢复性也是MySQL的一个特点,这主要表现在MyISAM配置中。这种方式有它固有的缺欠,如果你不慎损坏数据库,结果可能会导致所有的数据丢失。然而,对于SQL服务器而言就表现得很稳键。SQL服务器能够时刻监测数据交换点并能够把数据库损坏的过程保存下来。

 

MySqlOracle的异同:

Oraclemysql
支持%_两个通配符,前者匹配任意个任意字符,后者匹配最多一个任意字符。但在处理本意字符%_时,就很不相同了。mysql可以用转义字符\来处 理;oracle也可以用转义字符来处理,但必须在LIKE表达式后用escape
‘\’
来说明;其中\可以是任意一个字符(注意必须是一个字符)。

 

2、对象名的大小写敏感性
   
处理诸如表,
存储过程,函数,索引,数据库等对象时,Oracle对大小写不敏感;mysql则由操作系统来决定。如LINUX下是敏感的,WINDOWS是不敏感的。

 

 
  3、查询表信息

   
mysql: show tables;

   
Oracle: select table_name from tabs;

 

 
  4、自动增长类型的支持

   
mysql: 每一个表可以有一列用auto_increment,但必须用于主关键字。其起始值可以用AUTO_INCREMENT=500000作为表属性来约束,不能设步长,不能循环使用。

   
Oracle: sequence对象来支持该类型。可以在触发器和SQL语句中用nextval,currval来取值;注意CURRVAL需要在同一SESSION里方能取值正确。

   
查询语句如SELECT  seqid_main.nextval
from dual

   
创建语句如CREATE
SEQUENCE SEQID_MAIN INCREMENT BY 1 START WITH 1 NOCYCLE CACHE 20
NOORDER;

 

 
  5、限制记录数的支持

mysql: limit
[start-index,]count
子句来实现,非常简单,并且支持DELETE语法,应该对用户非常方便。

   
Oracle: 没有直接的子句可以提供支持。但近似可以用row_number函数来实现。

  row_number()
over (order by col1 desc,col2) as row
,然后对row来进行过滤处理。如果没有排序子句则可以用更简单的rownum来实现。

 

 
  6、连接操作符的支持

   
其实mysqlOracle都支持左、右、内联操作。不过Oracle的语法如
a.id=b.id(+)来表示左联操作比较直观和容易构造。

 

 
  7null的处理

   
Oracle: nvl函数。

   
mysql: 默认上下文环境如‘’0UNDEF等。

 

 
  8、字符联接

   
Oracle: ||(常用)

   
mysql: concat

 

 
  9、日期型的转换

   
mysql: DateFormat,默认支持的各种格式(基于当前区域设置)。

   
Oracle: to_date/to_char

 

 
  10、注释行的开头字符

   
mysql: #

   
Oracle: –

   
11、外表关联支持

   
mysql: 4.0版本后创建InnoDB类型的表。

   
Oracle: 现在的差不多都支持,很老的就不知道了,等等。

 

MssqlOracle的异同:

 体系结构  
  Microsoft按照客户/服务器
系结构的分布进行操作。这种方法产生不必要的代价和复杂性。在Internet中,Oracle已经发现了一个较好的答案。在 Internet
Computing
的多层(multi-tiered)体系结构中,集中(centralization)可以简化应用的部署和维护, 数据的管理和备份,并向客户提供了高级的性能、安全性与可靠性——结果使总的操作成本更低。Oracle具有使所有数据和文档存储在少数几个高性能数据库
的能力,这种能力使客户可以集中管理他们所有的数据,并且
信息管理和访问更加容易、可靠且价格更加便宜。  
  开放(openness)  
  SQL
Server
只在Windows上运行,MicroSoft这种专有策略的目标是将客户锁定到Windows环境中,限制客户通过选择一个开放的基于标准的解决方案来获取革新和价格竞争带来的好处。此外,人们也都知道,Windows
平台
身的可靠性、安全性和可伸缩性也是有限的。 Oracle能在所有主要的平台(其中包括Windows)上运行,并且完全支持所有的工业标准,所以,客户
可以利用很多种第三方应用程序、工具、网关和管理实用程序。
Oracle采用开放策略,它使得客户可以选择一种最适合他们特定需要的解决方案。利用 Oracle8i,操作系统实质上将变得无关紧要。Oracle8iInternet文件系统(iFS)是一种突破,这种突破性给所有数据类型提供了一
种易于使用的数据管理接口,这样减少了客户对
Windows之类的专用操作系统的依赖。  

  可伸缩性  
  由于SQLServer7.0的并行实施和共存模型并不成熟,这使得人们更加关心该产品处理日益增多的用户数和数据卷(volumes)的能力。Oracle在下列两个方面提供了一个优越的可伸缩性:  
  簇:Oracle并行服务
通过使一组节点共享同一簇中的工作负载来扩展Windows
NT
的能力,Oracle提供具有高可用性和高伸缩性的簇解决方案,而Microsoft
提供克服错误的簇。根据
Gartner
Group
的一份报告(10/97),Microsoft2001年以前将不会有一个可伸缩的簇解决方案。 Oracle自从1997年以来就已经有这种能力。  

  伸缩到其他操作系统:因为Oracle是一个开放的解决方案,客户可以从他们的系
统移到
Unix或另一个操作系统,当Windows
NT
不能满足他们的需要。SQL Server与单个平台的结合意味着,当一个客户达到 Windows NT的限制时,除了放弃他们的系统并移到一个新平台上的一个新数据库以外——一个最能节省时间和金钱的建议,他们再也没有其他选择。  

  安全性  
  由于Internet的出现而带来的全球数据访问也同时增加了潜在的安全危险。对于数据库的安全要求决不会比以前更高,而SQL
Server7.0
还没有获得任何类型的
安全证书
相比之下,Oracle是唯一获得最高认证级别的ISO标准认证的数据库。Oracle高级的安全特性考虑了强制实施的细小权限,先进的审查,增强的访问
控制,安全的分布是处理与复制,以及使用附加的外部签发机制的能力。
SQL Server7.0没有这些特性。利用Oracle产品,企业可以将真正集成
的安全机制廉价地迁入到业务系统中。

可扩展性  
  今天的Internet是一个令人激动的新世界,它具有鲜明的图像,实时的视频点播,高保真的语音和声音,以及诸如金融
据趋势和地理编码之类的复杂信息。通过集中管理文本、图像、音频、视频和地理信息,Oracle8iinterMedia使客户能够利用Web的多媒体
特性。相比之下,
Microsoft SQL Server
7.0
对非传统的数据类型缺乏内置的支持。作为一种替代的策略,Microsoft提倡将非
传统的数据存储到单独的服务器里的平面
(flat)文件中,然后使用OLE-DB将它们链接在一起。使用这种策略,集成在Web中发现的各种数据类型,将
会产生复杂的、不安全的、维护量大的数据包
(mess),这种数据包缺乏事物的完整性。  

  性能  
  低性能可能是很致命的 (fatal),因为雇员的生产能力被阻碍,客户由于过多的等待时间而丢失。根据事物处理委员会(TPC)审查的标准与结果,Oracle提供了比
SQL Server7.0更高级的性能。到199811月为止,Oracle一直是Windows
NT
TPC-DTPC-C标准的世界记录保持
者。实际上,
OracleNT
TPC-C
结果几乎比Microsoft的快两倍。Microsoft
从来没有宣布一个TPC-D结果,这就意味着尽
SQL
Server7.0
中有假定的环境,但它仍然不适合于数据仓库应用。Oracle也保持了SAP,BaanPeoplesoft标准的世界记
录。通过一贯地演示正式标准与实际情况之间的性能关系,
Oracle已被证明,它可以处理最紧迫的数据仓库和OLTP应用的工作负载要求。

 

操作简单  
   使数据库易于安装、使用和管理——组合在一起称为操作简单“——是一个减少成本的关键因素。尽管Microsoft产品具有易于使用的美誉,但 SQL
Server7.0
缺乏数据库管理的特性,而这种特性是复杂的数据库系统所必须的。例如,对于SQL Server6.5
SQL
Server7.0,Microsoft
需要使用单独的管理工具。
为了易于安装,Oracle使用了一个基于Java的实用程序,该实用程序提
供了安装和运行一个预调整和预配置的
Oracle8i数据库所需要的一切内容。操作简单的最重要部分是易管理性,
Oracle Enterprise
Manager
(企业管理器)提供一个集成的管理控制台来集中管理多个服务器。客户也可以单独购买所有三个或其中任
何一个可选的管理包,这些管理包提供了高级的功能来调整和诊断数据库,管理数据库环境的复杂变化。
  

  革新  
  PC
Week
已经说过,“SQL Server7.0并没有向客户提供其竞争对手尚未提供的任何新东西。根据Information Week(9/14/98),“即使在
经济
市场中:Windows NT环境,SQL
Server7
仍然不是OLTP数据库竞争者的对手。SQL Server7.0中,许多关键任务数据库
应用所必需的功能(高可用性
/可伸缩性、安全、性能等)仍然没有。Microsoft现在正在努力地追赶Oracle又一个
技术
先的传统,新发布的Oracle8i也不例外。通过诸如iFS、数据库JavaWebDBinterMediaWebToGo之类的革新, Oracle带头使各个公司获得Internet计算的好处。特别在Windows
NT
中,由于Oracle是第一个发布NT数据库簇解决方案的厂商, 第一次支持超过大内存(VLM),第一次将高可用性和可伸缩性带到安装有Oacle并行服务器的NT中,所以Oracle在扩展NT能力方面已经成为一个 明确的领导者。

 技术风险  
  SQL
Server7.0
是一个完全重写的产品版本。该产品经历了联系的延迟,并且具有非常长的beta测试周期,这通常代表开发问题。一份Gartner报告(8/98)说,引擎的重新设计时非常深的我们建议在1999年中期以前,不要将该
产品部署
规模比较大的产品应用中。正如一份Giga报告(3/98)所说的那样,“SQL
Server
仍有许多需要证明。可伸缩性、可靠性、多用户的性能、簇
的开发、对象特性的支持等都有问题。
一个特别危险的因素是重新加在数据库问题。由于基本的数据结构发生变化,Microsoft将要求所有
SQL Server6.06.5站点必须先卸载然后重新加载数据,这个过程需要好几天的时间。Microsoft已经承认6.57.0之间存在后向 兼容问题。利用SQL
Server7.0,
许多以前存在的基本的6.5代码将必须重写,以便利用象行级锁定和分布联合之类的新特性。公司在使它们的生产 率和信息冒风险时必须非常谨慎。
利用Oracle没有任何风险。Oracle8已经发布一年多了,并被部署在成百上千个用户站点上。在500家财团公司
中,将近
90%的公司使用Oracle产品和服务器。

厂商风险  
  Microsoft的核心能力是在桌面和操作系统软件的开发,该公司在企业级数据管理没有什么经验。从技术和业务来看,
Microsoft只在最近才进入数据管理领域,到目前为止还没有获得信任。 Microsoft的成功是由于依靠客户软件的连续废弃与升级,以及硬件和
操作系统尽可能的传播。在企业范围内若要获得成功,则要求高效利用已有的数据资源,并合并服务器资源。在另一个方面,
Oracle已有二十多年的向客户解
决方案的经验。一个公司的数据是它们最有价值的资产,
Microsoft不能指望涌进这个市场,然后一夜之间获得信任。Oracle已经花费了几年的艰苦
努力才赢得其客户群的信任以及它目前享受到的荣誉。每天成千上万的客户在
Oracle上运行它们的业务所获得的成功就是Oracle技术和业务模型完美的
有利证明。
 
 

 

总结  
  SQL
Server7.0
已比原来的计划几乎晚两年发行。在这段时间内,有关哪个厂商具有 Windows NT上最好的数据库解决方案的战斗已经打响,并最终由Oracle获胜。自从1996年以来,Oracle一直是Windows
NT
上 的市场领导者。在过去的四年里,Oracle已在NT上享有令人震惊的2000%
收入
长。在这期间,Microsoft的收入占NT市场的份额实际上已经减少了27.8%Oracle的伙伴的巨大成功补充了Oracle的客户的成功。一
份最近的
ARM研究(1998)表明,在1997年的EPT市场中,数据库营业收入的52%进入Oracle,相比之下,
Microsoft SQL Server只占5%。事实上,在ASP3200NT安装中,70%是在Oracle上。只有20%是在 SQL
Server
上。 随着它们最新的数据库升级,Microsoft达到了Oracle在十年前通过Oracle6达到的水平。
SQL Server7.0仍然比Oracle8i落后几年,并且在可伸缩性、体系结构、功能、安全性、扩展性等方面存在严重问题,这将阻碍它在关键任务
应用中的使用。客户对选择
SQL
Server7.0
将持严重的保留态度,特别是在Oraclr8i这样高可靠和先进的产品已经存在的时候。

原文链接:https://www.cnblogs.com/liuguanghai/p/5382465.html
本文来源 爱码网,其版权均为 原网址 所有 与本站无关,文章内容系作者个人观点,不代表 本站 对观点赞同或支持。如需转载,请注明文章来源。

© 版权声明

相关文章