oracle、MySQL、SQL Server的比较
MySql的优点:
1
MYSQL支持5000万条记录的数据仓库(3.x版本就支持了)
2 MYSQL适应所有平台
。
3 MYSQL是开源软件,开源的东西似乎总是比较实在一点,不会有太多商业化的考虑。
4 学起来简单
5 MYSQL 因为是开源的,所以支持任意修改,也就是说你可以去除你不需要的功能,从而简化MYSQL,提高速度。
6美国西部时间2006年2月4日,测试厂商Coverity公司发表声明,称对MySQL数据库软件的源代码进行分析后,结果表明其缺陷数量远远小于商业数据库软件的水平。
7使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性
8支持AIX、FreeBSD、HP-UX、Linux、Mac OS、Novell Netware、OpenBSD、OS/2
Wrap、Solaris、Windows等多种操作系统
9为多种编程语言提供了API。这些编程语言包括C、C++、Eiffel、Java、Perl、PHP、Python、Ruby和Tcl等。
10支持多线程,充分利用CPU资源
11优化的SQL查询算法,有效地提高查询速度
12既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中提供多语言支持,常见的编码如中文的GB
2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名
13 提供TCP/IP、ODBC和JDBC等多种数据库连接途径
14 提供用于管理、检查、优化数据库操作的管理工具
MySql的缺点:
1、MySQL最大的缺点是其安全系统,主要是复杂而非标准,另外只有到调用mysqladmin来重读用户权限时才发生改变。
2、MySQL的另一个主要的缺陷之一是缺乏标准的RI(Referential Integrity-RI)机制;Rl限制的缺乏(在给定字段域上的一种固定的范围限制)可以通过大量的数据类型来补偿。
3、MySQL没有一种存储过程(Stored
Procedure)语言,这是对习惯于企业级数据库的程序员的最大限制。
4、MySQL不支持热备份。
5、MySQL的价格随平台和安装方式变化。Linux的MySQL如果由用户自己或系统管理员而不是第三方安装则是免费的,第三方案则必须付许可费。Unix或Linux自行安装免
费、Unix或Linux第三方安装200美元,需要一个应用组件200美元。
Mssql的优点: 可以在一台计算机上运行多个 SQL Server 2000 实例。例如,一个为其它许多组织提供数据库服务的组织可为每个客户组织单独运行一个 SQL Server 2000 实例,而全部实例可集中在一台计算机上。这样,既隔开了每个客户组织的数据,同时又使服务组织只需管理一台服务器计算机从而减少了费用。 SQL Server 2000 应用程序可在装有 SQL Server 高可用性 管理工具 安全性增强 可伸缩性 Mssql的缺点: |
Oracle的优点:
1. oracle的优点很多,比如跨平台,这只是oracle众多优点之一,但这对客户来说是非常重要的一个优点。
2. ORACLE的可用性非常强,oracle的组件功能全
3. ORACLE体系先进,所以性能优异
4. Oracle Server是一个对象一关系数据库管理系统。它提供开放的、全面的、和集成的信息管理方法。每个Server由一个
Oracle DB和一个 Oracle
Server实例组成。它具有场地自治性(Site Autonomy)和提供数据存储透明机制,以此可实现数据存储透明性。每个 Oracle数据库对应唯一的一个实例名SID,Oracle数据库服务器启动后,一般至少有以下几个用户: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-D和TPC-C的世界记录。
9. 多层次网络计算,支持多种工业标准,可以用ODBC,JDBC,OCI等网络客户连接
10. 长时间的开发经验,完全向下兼容。得到广泛的应用。完全没有风险。
Oracle的缺点:
1 操作性较复杂, 同时提供GUI和命令行,在windowsNT和unix下操作相同。
2 价格昂贵
MySql与Mssql的异同:
根本的区别是它们遵循的基本原则
二者所遵循的基本原则是它们的主要区别:开放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 数据库与磁盘非常地兼容而不占用过多的位处理器来获取额外的一些性能。因为MySQL在内部里很多时候都使用64位的整数处理。Yahoo!商业网站就使用MySQL
作为后台数据库。
当提及软件的性能,SQL服务器的稳定性要比它的竞争对手强很多。但是,这些特性也要付出代价的。比如,必须增加额外复杂操作,磁盘存储,内存损耗等等。如果你的硬件和软件不能充分支持SQL服务器,我建议你最好选择其他如DBMS数据库,因为这样你会得到更好的结果。
安全功能
MySQL有一个用于改变数据的二进制日志。因为它是二进制,这一日志能够快速地从主机上复制数据到客户机上。即使服务器崩溃,这一二进制日志也会保持完整,而且复制的部分也不会受到损坏。
在SQL服务器中,你也可以记录SQL的有关查询,但这需要付出很高的代价。
安全性
这两个产品都有自己完整的安全机制。只要你遵循这些安全机制,一般程序都不会出现什么问题。这两者都使用缺省的IP端口,但是有时候很不幸,这些IP也会被一些黑客闯入。当然,你也可以自己设置这些IP端口。
恢复性:先进的SQL服务器
恢复性也是MySQL的一个特点,这主要表现在MyISAM配置中。这种方式有它固有的缺欠,如果你不慎损坏数据库,结果可能会导致所有的数据丢失。然而,对于SQL服务器而言就表现得很稳键。SQL服务器能够时刻监测数据交换点并能够把数据库损坏的过程保存下来。
MySql与Oracle的异同:
Oracle和mysql都
支持%和_两个通配符,前者匹配任意个任意字符,后者匹配最多一个任意字符。但在处理本意字符%和_时,就很不相同了。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、连接操作符的支持
其实mysql和Oracle都支持左、右、内联操作。不过Oracle的语法如
a.id=b.id(+)来表示左联操作比较直观和容易构造。
7、null的处理
Oracle: nvl函数。
mysql: 默认上下文环境如‘’,0,UNDEF等。
8、字符联接
Oracle: ||(常用)
mysql: concat
9、日期型的转换
mysql: DateFormat,默认支持的各种格式(基于当前区域设置)。
Oracle: to_date/to_char
10、注释行的开头字符
mysql: #
Oracle: -
11、外表关联支持
mysql: 4.0版本后创建InnoDB类型的表。
Oracle: 现在的差不多都支持,很老的就不知道了,等等。
Mssql与Oracle的异同:
体系结构
Microsoft按照客户/服务器体
系结构的分布进行操作。这种方法产生不必要的代价和复杂性。在Internet中,Oracle已经发现了一个较好的答案。在 Internet
Computing的多层(multi-tiered)体系结构中,集中(centralization)可以简化应用的部署和维护, 数据的管理和备份,并向客户提供了高级的性能、安全性与可靠性——结果使总的操作成本更低。Oracle具有使所有数据和文档存储在少数几个高性能数据库
的能力,这种能力使客户可以集中管理他们所有的数据,并且信息管理和访问更加容易、可靠且价格更加便宜。
开放(openness)
SQL
Server只在Windows上运行,MicroSoft这种专有策略的目标是将客户锁定到Windows环境中,限制客户通过选择一个开放的基于标准的解决方案来获取革新和价格竞争带来的好处。此外,人们也都知道,Windows平台本
身的可靠性、安全性和可伸缩性也是有限的。 Oracle能在所有主要的平台(其中包括Windows)上运行,并且完全支持所有的工业标准,所以,客户
可以利用很多种第三方应用程序、工具、网关和管理实用程序。Oracle采用开放策略,它使得客户可以选择一种最适合他们特定需要的解决方案。利用 Oracle8i,操作系统实质上将变得无关紧要。Oracle8i的Internet文件系统(iFS)是一种突破,这种突破性给所有数据类型提供了一
种易于使用的数据管理接口,这样减少了客户对Windows之类的专用操作系统的依赖。
可伸缩性
由于SQLServer7.0的并行实施和共存模型并不成熟,这使得人们更加关心该产品处理日益增多的用户数和数据卷(volumes)的能力。Oracle在下列两个方面提供了一个优越的可伸缩性:
簇:Oracle并行服务器
通过使一组节点共享同一簇中的工作负载来扩展Windows
NT的能力,Oracle提供具有高可用性和高伸缩性的簇解决方案,而Microsoft只
提供克服错误的簇。根据Gartner
Group的一份报告(10/97),Microsoft在2001年以前将不会有一个可伸缩的簇解决方案。 Oracle自从1997年以来就已经有这种能力。
伸缩到其他操作系统:因为Oracle是一个开放的解决方案,客户可以从他们的系
统移到Unix或另一个操作系统,当Windows
NT不能满足他们的需要。SQL Server与单个平台的结合意味着,当一个客户达到 Windows NT的限制时,除了放弃他们的系统并移到一个新平台上的一个新数据库以外——一个最能节省时间和金钱的建议,他们再也没有其他选择。
安全性
由于Internet的出现而带来的全球数据访问也同时增加了潜在的安全危险。对于数据库的安全要求决不会比以前更高,而SQL
Server7.0还没有获得任何类型的安全证书。
相比之下,Oracle是唯一获得最高认证级别的ISO标准认证的数据库。Oracle高级的安全特性考虑了强制实施的细小权限,先进的审查,增强的访问
控制,安全的分布是处理与复制,以及使用附加的外部签发机制的能力。SQL Server7.0没有这些特性。利用Oracle产品,企业可以将真正集成
的安全机制廉价地迁入到业务系统中。
可扩展性
今天的Internet是一个令人激动的新世界,它具有鲜明的图像,实时的视频点播,高保真的语音和声音,以及诸如金融数
据趋势和地理编码之类的复杂信息。通过集中管理文本、图像、音频、视频和地理信息,Oracle8i的interMedia使客户能够利用Web的多媒体
特性。相比之下,Microsoft SQL Server
7.0对非传统的数据类型缺乏内置的支持。作为一种替代的策略,Microsoft提倡将非
传统的数据存储到单独的服务器里的平面(flat)文件中,然后使用OLE-DB将它们链接在一起。使用这种策略,集成在Web中发现的各种数据类型,将
会产生复杂的、不安全的、维护量大的数据包(mess),这种数据包缺乏事物的完整性。
性能
低性能可能是很致命的 (fatal),因为雇员的生产能力被阻碍,客户由于过多的等待时间而丢失。根据事物处理委员会(TPC)审查的标准与结果,Oracle提供了比
SQL Server7.0更高级的性能。到1998年11月为止,Oracle一直是Windows
NT中TPC-D和TPC-C标准的世界记录保持
者。实际上,Oracle的NT
TPC-C结果几乎比Microsoft的快两倍。Microsoft
从来没有宣布一个TPC-D结果,这就意味着尽
管SQL
Server7.0中有假定的环境,但它仍然不适合于数据仓库应用。Oracle也保持了SAP,Baan和Peoplesoft标准的世界记
录。通过一贯地演示正式标准与实际情况之间的性能关系,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、数据库Java、WebDB、interMedia和WebToGo之类的革新, 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.0和6.5站点必须先卸载然后重新加载数据,这个过程需要好几天的时间。Microsoft已经承认6.5和7.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%。事实上,在ASP的3200个NT安装中,70%是在Oracle上。只有20%是在 SQL
Server上。 随着它们最新的数据库升级,Microsoft达到了Oracle在十年前通过Oracle6达到的水平。
SQL Server7.0仍然比Oracle8i落后几年,并且在可伸缩性、体系结构、功能、安全性、扩展性等方面存在严重问题,这将阻碍它在关键任务
应用中的使用。客户对选择SQL
Server7.0将持严重的保留态度,特别是在Oraclr8i这样高可靠和先进的产品已经存在的时候。
oracle、MySQL、SQL Server的比较的更多相关文章
- 不同数据库oracle mysql SQL Server DB2 infomix sybase分页查询语句
在不同数据库中的使用的分页查询语句: 当前页:currentpage 页大小:pagesize 1. Oracle数据库 select * from (select A.*,rownum rn fro ...
- Oracle,Mysql ,SQL Server 三大数据库带参数的模糊查询, 拼接查询条件问题
最近项目开发一直在不断切换数据库,有时候一条sql 要同时考虑多种数据库中的兼容问题 , 先总结一条模糊查询拼接查询条件的问题,后续追加总结. 目前使用 mybatis: 1. Oracle 中使 ...
- oracle,mysql,sql server三大数据库的事务隔离级别查看方法
1:mysql的事务隔离级别查看方法 mysql 最简单,执行这条语句就行:select @@tx_isolation 详情: 1.查看当前会话隔离级别 select @@tx_isolation; ...
- 如何连接oracle,mysql, SQL Server数据库(Java版)
先添加上连接oracle,MySQL的驱动路径和数据库连接URL: MySQL: final String DBDRIVER = "org.gjt.mm.mysql.Driver" ...
- MySQL、Oracle和SQL Server的分页查询语句
假设当前是第PageNo页,每页有PageSize条记录,现在分别用Mysql.Oracle和SQL Server分页查询student表. 1.Mysql的分页查询: SELECT * FROM s ...
- 从运维的角度分析使用阿里云数据库RDS的必要性--你不应该在阿里云上使用自建的MySQL/SQL Server/Oracle/PostgreSQL数据库
开宗明义,你不应该在阿里云上使用自建的MySQL or SQL Server数据库,对了,还有Oracle or PostgreSQL数据库. 云数据库 RDS(Relational Database ...
- MySql/Oracle和SQL Server的分页查
假设当前是第PageNo页,每页有PageSize条记录,现在分别用Mysql.Oracle和SQL Server分页查询student表. 1.Mysql的分页查询: 1 SELECT 2 * 3 ...
- 对Oracle 、SQL Server、MySQL、PostgreSQL数据库优缺点分析
对Oracle .SQL Server.MySQL.PostgreSQL数据库优缺点分析 Oracle Database Oracle Database,又名Oracle RDBMS,或简称Oracl ...
- 基于TreeSoft实现mysql、oracle、sql server的数据同步
一.为了解决数据同步汇聚,数据分发,数据转换,数据维护需求,TreeSoft推出了数据同步,数据处理等丰富功能 . TreeSoft作为中间传输载体负责连接各种数据源,为各种异构数据库之间架起沟通的桥 ...
- Datatypes translation between Oracle and SQL Server
Datatypes translation between Oracle and SQL Server part 1: character, binary strings Datatypes tran ...
随机推荐
- POJ3294 Life Forms(二分+后缀数组)
给n个字符串,求最长的多于n/2个字符串的公共子串. 依然是二分判定+height分组. 把这n个字符串连接,中间用不同字符隔开,跑后缀数组计算出height: 二分要求的子串长度,判断是否满足:he ...
- 第九章 Android-UI组件(2)
一.图像视图(ImageView) 布局 <?xml version="1.0" encoding="utf-8"?> <LinearLayo ...
- android xml 布局文件中 android:ems="10"
宽度为10个字符的宽度 xml中 android:ems属性 ,作为EditText 默认生成 的属性,其含义是需要编辑的 字符串长度 .设置为10时,最多编辑 10个em ,一个em单位是 两个in ...
- 【mybatis】时间范围 处理时间格式问题 + 查询当天 本月 本年 + 按当天 当月 范围 查询 分组
1.mybatis中查询时间范围处理: 例如2018-05-22 ~2018-05-23 则查出来的数据仅能查到2018-05-22的,查不到2018-05-23的数据! 为什么会这样? 明明时间字段 ...
- django模板解析 循环列表中 切片和求长度
{% for subrow in subdic.content|slice:":5" %} {% endfor %} {% if "{{subdic.content|le ...
- python多线程,守护线程
https://www.cnblogs.com/liuyang1987/p/6292321.html
- java内存溢出分析工具:jmap使用实战
在一次解决系统tomcat老是内存撑到头,然后崩溃的问题时,使用到了jmap. 1 使用命令 在环境是linux+jdk1.5以上,这个工具是自带的,路径在JDK_HOME/bin/下 jmap -h ...
- ElasticSearch _xpack角色管理
权限管理可以通过kibana的Management界面进行,本篇主要介绍的是通过命令进行,角色API使您能够在本机域中添加,删除和检索角色. 要使用此API,您必须至少具有manage_securit ...
- Python-使用Magellan进行数据匹配总结
参考:http://www.biggorilla.org/zh-hans/walkt/ 使用Magellan进行数据匹配过程如下: 假设有两个数据源为A和B, A共有四列数据:(A_Column1,A ...
- thrift.transport.TTransport.TTransportException: Could not start SASL: Error in sasl_client_start (-4) SASL(-4): no mechanism available: No worthy mechs found
thrift.transport.TTransport.TTransportException: Could not start SASL: Error in sasl_client_start (- ...