检索06 - Oracle MySql SqlSever之间的区别和优缺点

 

 

 

                                                                 三者之间区别mysql

  • 历史

  1 Oracle:中文译做甲骨文,这是一家传奇的公司,有一个传奇的大老板Larry Ellision。 Ellision 32岁还一事无成,读了三个大学,没获得一个学位文凭,换了十几家公司,老婆也离他而去。开始创业时只有1200美圆,却使得Oracle公司连续12年销售额每一年翻一番。
Oracle成立于1977年,早期的理论基础,反而来自于一篇IBM的论文《A Relational Model of Data for Large Shared Data Banks》【1】。做者CODD选取了关系代数的五种运算,并基于运算,架构了一种新型的数据存储模型。基于这种模型,Oracle成为了一个很是典型的关系数据库。所以也变的严谨、安全、高速、稳定,而且变的愈来愈庞大。
        因为其诞生早、结构严谨、高可用、高性能等特色,使其在传统数据库应用中大杀四方,金融、通讯、能源、运输、零售、制造等各个行业的大型公司基本都是用了Oracle,世界500强几乎100%都是Oracle的用户。程序员

  2 MySQL :MySQL的最初的核心思想,主要是开源、简便易用。其开发可追溯至1985年,而第一个内部发行版本诞生,已是1995年。到1998年,MySQL已经能够支持10中操做系统了,其中就包括win平台。但依然问题多多,如不支持事务操做、子查询 、外键、存储过程和视图等功能。MySQL的爆发实际是在0一、02年,尤为是02年发布的4.0 Beta版,正式选定InnoDB做为默认引擎,对事务处理能力及数据缓存能力有了极大的提升。同年4.1版开始支持子查询,至此MySQL终于蜕变成一个成熟的关系型数据库系统。05年的5.0版本又添加了存储过程、服务端游标、触发器、查询优化以及分布式事务功能,但同年被Oracle抄了后路,InnoDB被Oracle收编。08年,MySQL被Sun收购,09年,Oracle收购了Sun和MySQL。
  因为MySQL的早期定位,其主要应用场景就是互联网开发。基本上,互联网的爆发成就了MySQL,LAMP架构风靡天下。而因为MySQL更多的的追求轻量、易用,以及早期的事物操做及复杂查询优化的缺失,在传统的数据库应用场景中,份额极少。算法

  3 SQL Server:一提到SQL Server,你们通常都只想到Microsoft SQL Server,而非Sybase SQL Server。SQL Server最初是由Microsoft, Sybase and Ashton-Tate三家公司拦下的生意,是为IBM(又出现了)公司的OS/2操做系统开发的。随着OS/2项目的失败,你们也分道扬镳。 Microsoft天然转向本身的win操做系统,做为windows NT软件方案的一部分。而Sybase则专一于Linux/Unix方向的数据库开发。
MS SQL Server主要面向中小企业。其最大的优点就是在于集成了MS公司的各种产品及资源,提供了强大的可视化界面、高度集成的管理开发工具,在快速构建商业智能(BI)方面很有建树。 MS SQL Server是MS公司在软件集成方案中的重要一环,也为WIN系统在企业级应用中的普及作出了很大贡献。sql

 

  • 典型应用场景

 

  1 Oracle。Oracle的应用,主要在传统行业的数据化业务中,好比:银行、金融这样的对可用性、健壮性、安全性、实时性要求极高的业务;零售、物流这样对海量数据存储分析要求很高的业务。此外,高新制造业如芯片厂也基本都离不开Oracle;电商也有不少使用者,如京东(正在投奔Oracle)、阿里巴巴(计划去Oracle化)。并且因为Oracle对复杂计算、统计分析的强大支持,在互联网数据分析、数据挖掘方面的应用也愈来愈多。一个典型场景是这样的:
  某电信公司(非国内)下属某分公司的数据中心,有4台Oracle Sun的大型服务器用来安装Solaris操做系统和Oracle并提供计算服务,3台Sun Storage磁盘阵列来提供Oracle数据存储,12台IBM小型机,一台Oracle Exadata服务器,一台500T的磁带机用来存储历史数据,San链接内网,使用Tuxedo中间件来保证扩展性和无损迁移。创建支持高并发的Oracle数据库,经过OLTP系统用来对海量数据实时处理、操做,创建高运算量的Oracle数据仓库,用OLAP系统用来分析营收数据及提供自动报表。总预算约750万美金。数据库

  2 MySQL。MySQL基本是生于互联网,长于互联网。其应用实例也大都集中于互联网方向,MySQL的高并发存取能力并不比大型数据库差,同时价格便宜,安装使用简便快捷,深受广大互联网公司的喜好。而且因为MySQL的开源特性,针对一些对数据库有特别要求的应用,能够经过修改代码来实现定向优化,例如SNS、LBS等互联网业务。一个典型的应用场景是:
  某互联网公司,成立之初,仅有PC数台,经过LAMP架构迅速搭起网站框架。随着业务扩张、市场扩大,迅速发展成为6台Dell小型机的中型网站。如今花了三年,终于成为垂直领域的最大网站,计划中的数据中心,拥有Dell机架式服务器40台,总预算20万美金。编程

  3 MS SQL Server。windows生态系统的产品,好处坏处都很分明。好处就是,高度集成化,微软也提供了整套的软件方案,基本上一套win系统装下来就齐活了。所以,不那么缺钱,但很缺IT人才的中小企业,会偏心 MS SQL Server 。例如,自建ERP系统、商业智能、垂直领域零售商、餐饮、事业单位等等。
1996年,Bill Gates亲自出手,从Borland挖来了大牛Anders,搞定了C#语言。微软02年搞定了。成熟的.NET、Silverlight技术,为 MS SQL Server赢得了部分互联网市场,其中就有曾经的全球最大社交网站MySpace,其发展历程颇有表明性,可做为一个比较特别的例子【3】。其巅峰时有超过1.5亿的注册用户及每个月400亿的访问量。应该算是MS SQL Server支撑的最大的数据应用了。windows

 

  • 架构  

 

  1 Oracle: 数据文件包括:控制文件、数据文件、重作日志文件、参数文件、归档文件、密码文件。这是根据文件功能行进行划分,而且全部文件都是二进制编码后的文件,对数据库算法效率有极大的提升。因为Oracle文件管理的统一性,就能够对SQL执行过程当中的解析和优化,指定统一的标准:RBO(基于规则的优化器)、CBO(基于成本的优化器)
经过优化器的选择,以及无敌的HINT规则,给与了SQL优化极大的自由,对CPU、内存、IO资源进行方方面面的优化。
浏览器

  2 MySQL:最大的一个特点,就是自由选择存储引擎。每一个表都是一个文件,均可以选择合适的存储引擎。常见的引擎有 InnoDB、 MyISAM、 NDBCluster等。但因为这种开放插件式的存储引擎,好比要求数据库与引擎之间的松耦合关系。从而致使文件的一致性大大下降。在SQL执行优化方面,也就有着一些不可避免的瓶颈。在多表关联、子查询优化、统计函数等方面是软肋,并且只支持极简单的HINT。缓存

  3 SQL Server :数据架构基本是纵向划分,分为:Protocol Layer(协议层), Relational Engine(关系引擎), Storage Engine(存储引擎), SQLOS。SQL执行过程就是逐层解析的过程,其中Relational Engine中的优化器,是基于成本的(CBO),其工做过程跟Oracle是很是类似的。在成本之上也是支持很丰富的HINT,包括:链接提示、查询提示、表提示。安全

(注:转自http://www.zhihu.com/question/19866767    及 http://blog.csdn.net/you1314520me/article/details/11907715)

 

                                                                            各自优缺点

1、sqlserver
优势:
易用性、适合分布式组织的可伸缩性、用于决策支持的数据仓库功能、与许多其余服务器软件紧密关联的集成性、良好的性价比等;
为数据管理与分析带来了灵活性,容许单位在快速变化的环境中从容响应,从而得到竞争优点。从数据管理和分析角度看,将原始数据转化为商业智能和充分利用Web带来的机会很是重要。做为一个完备的数据库和数据分析包,SQLServer为快速开发新一代企业级商业应用程序、为企业赢得核心竞争优点打开了胜利之门。做为重要的基准测试可伸缩性和速度奖的记录保持者,SQLServer是一个具有彻底Web支持的数据库产品,提供了对可扩展标记语言 (XML)的核心支持以及在Internet上和防火墙外进行查询的能力;

缺点:
开放性 :SQL Server 只能windows上运行没有丝毫开放性操做系统系统稳定对数据库十分重要Windows9X系列产品偏重于桌面应用NT server只适合小型企业并且windows平台靠性安全性和伸缩性很是有限象unix样久经考验尤为处理大数据库;
伸缩性并行性 :SQL server 并行实施和共存模型并成熟难处理日益增多用户数和数据卷伸缩性有限;
安全性:没有得到任何安全证书。
性能 :SQL Server 多用户时性能佳 ;
客户端支持及应用模式: 客户端支持及应用模式。只支持C/S模式,SQL Server C/S结构只支持windows客户用ADO、DAO、OLEDB、ODBC链接;
使用风险:SQL server 彻底重写代码经历了长期测试断延迟许多功能须要时间来证实并十分兼容;
2、Oracle
优势:
开放性:Oracle 能全部主流平台上运行(包括 windows)彻底支持全部工业标准采用彻底开放策略使客户选择适合解决方案对开发商全力支持;
可伸缩性,并行性:Oracle 并行服务器经过使组结点共享同簇工做来扩展windownt能力提供高用性和高伸缩性簇解决方案windowsNT能知足须要用户把数据库移UNIXOracle并行服务器对各类UNIX平台集群机制都有着至关高集成度;
安全性:得到最高认证级别的ISO标准认证。 
性能:Oracle 性能高 保持开放平台下TPC-D和TPC-C世界记录;
客户端支持及应用模式:Oracle 多层次网络计算支持多种工业标准用ODBC、JDBC、OCI等网络客户链接
使用风险:Oracle 长时间开发经验彻底向下兼容得普遍应用地风险低

缺点:
对硬件的要求很高;
价格比较昂贵;
管理维护麻烦一些;
操做比较复杂,须要技术含量较高;

3、MySql
优势:
体积小、速度快、整体拥有成本低,开源;
支持多种操做系统;
是开源数据库,提供的接口支持多种语言链接操做
MySql的核心程序采用彻底的多线程编程。线程是轻量级的进程,它能够灵活地为用户提供服务,而不过多的系统资源。用多线程和C语言实现的MySql能很容易充分利用CPU;
MySql有一个很是灵活并且安全的权限和口令系统。当客户与MySql服务器链接时,他们之间全部的口令传送被加密,并且MySql支持主机认证;
支持ODBC for Windows, 支持全部的ODBC 2.5函数和其余许多函数, 能够用Access链接MySql服务器, 使得应用被扩展;
支持大型的数据库, 能够方便地支持上千万条记录的数据库。做为一个开放源代码的数据库,能够针对不一样的应用进行相应的修改。
拥有一个很是快速并且稳定的基于线程的内存分配系统,能够持续使用面没必要担忧其稳定性;
MySQL同时提供高度多样性,可以提供不少不一样的使用者介面,包括命令行客户端操做,网页浏览器,以及各式各样的程序语言介面,例如C+,Perl,Java,PHP,以及Python。你可使用事先包装好的客户端,或者干脆本身写一个合适的应用程序。MySQL可用于Unix,Windows,以及OS/2等平台,所以它能够用在我的电脑或者是服务器上;

缺点:
不支持热备份;
MySQL最大的缺点是其安全系统,主要是复杂而非标准,另外只有到调用mysqladmin来重读用户权限时才发生改变;
没有一种存储过程(Stored Procedure)语言,这是对习惯于企业级数据库的程序员的最大限制;
MySQL的价格随平台和安装方式变化。Linux的MySQL若是由用户本身或系统管理员而不是第三方安装则是免费的,第三方案则必须付许可费。Unix或Linux 自行安装 免费 、Unix或Linux 第三方安装 收费;

(注 : 转自http://www.jb51.net/article/48206.htm)

相关文章
相关标签/搜索