SQL Server 和 Oracle 以及 MySQL 有哪些区别?

SQL,在这里我理解成SQL Server。三者是目前市场占有率最高(依安装量而非收入)的关系数据库,而且很有代表性。排行第四的DB2(属IBM公司),与Oracle的定位和架构非常相似,就不赘述了。

如果要说明三者的区别,首先就要从历史入手。

  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平台。但依然问题多多,如不支持事务操作、子查询 、外键、存储过程和视图等功能。下图是一个截止至2006年的数据库市场占有率【2】:
  3. 图中可以看出,MySQL的爆发实际是在01、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更多的的追求轻量、易用,以及早期的事物操作及复杂查询优化的缺失,在传统的数据库应用场景中,份额极少。
  4. 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系统在企业级应用中的普及做出了很大贡献。

典型应用场景
关于“大型数据库”,并没有严格的界定,有说以数据量为准,有说以恢复时间为准。如果综合数据库应用场景来说,大型数据库应用有以下特点:海量数据、高吞吐量;复杂逻辑、高计算量,以及高可用性。从这点上来说,Oracle,DB2就是比较典型的大型数据库,Sybase SQL Server也算是吧。下面分别说明之前三种数据库的应用场景。

  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支撑的最大的数据应用了。

架构。其实要说执行的区别,主要还是架构的区别。正是架构导致了相同SQL在执行过程中的解释、优化、效率的差异。这里只做粗略说明,就不细说了:

  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,包括:连接提示、查询提示、表提示。


注:本人经验尚浅,且未从事过DBA相关职业,欢迎纠正错误及共同学习。

转载于:https://www.cnblogs.com/WillZhang7/p/4260411.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/472459.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode 1813. 句子相似性 III

文章目录1. 题目2. 解题1. 题目 一个句子是由一些单词与它们之间的单个空格组成,且句子的开头和结尾没有多余空格。 比方说,"Hello World" ,"HELLO" ,"hello world hello world" 都是句子。 每个单…

vim配置python开发环境_GitHub - TTWShell/legolas-vim: Vim配置,为python、go开发者打造的IDE。...

legolas-vim个人vim配置。支持python、go等自动提示,支持python、go的函数跳转(python支持虚拟环境)。 最终效果图(函数列表的feature已移除,因为大项目会导致性能问题):支持Python自动补全的最…

平面设计中的网格系统pdf_平面设计基础知识

导语:“ 给大家推荐优质书籍,包含平面设计基础入门知识的书籍分享”。平面设计基础知识分享书籍名称:《写给大家看的设计书》作者:[美]罗宾威廉姆斯著平面设计的四个原则:复杂的设计原理在《写给大家看的设计书》中凝炼…

LeetCode 1814. 统计一个数组中好对子的数目(哈希)

文章目录1. 题目2. 解题1. 题目 给你一个数组 nums &#xff0c;数组中只包含非负整数。 定义 rev(x) 的值为将整数 x 各个数字位反转得到的结果。 比方说 rev(123) 321 &#xff0c; rev(120) 21 。我们称满足下面条件的下标对 (i, j) 是 好的 &#xff1a; 0 < i <…

如何看当前windows是utf8还是gbk_监理工程师5月份出教材,现在如何备考?

监理工程师教材预计5月份出版&#xff0c;相信考生都知道监理工程师教材对于考生复习的重要性&#xff0c;那么现在考生应该如何学习呢?听小编给你说一说。教材没有发布之前怎么学习?教材改动比较大&#xff0c;没有发布之前我们就不要学习了么?小编不这么认为&#xff0c;监…

巧用Hint

一般计算fibonacci的方法&#xff1a; 1 def fibonacci (n): 2 if n 0 or n 1: 3 return 1 4 else: 5 return fibonacci(n-1) fibonacci(n-2) 这样的 call graph for fibonacci with n4: 当计算 fibonacci(30)的时候还可以&#xff0c;当计算 fibon…

LeetCode 1816. 截断句子

文章目录1. 题目2. 解题1. 题目 句子 是一个单词列表&#xff0c;列表中的单词之间用单个空格隔开&#xff0c;且不存在前导或尾随空格。每个单词仅由大小写英文字母组成&#xff08;不含标点符号&#xff09;。 例如&#xff0c;"Hello World"、"HELLO"…

脸书令牌怎么使用_网工知识角|QOS技术令牌桶算法一分钟速记,考试无忧

点上方蓝字关注公众号&#xff0c;坚持每天技术打卡学网络&#xff0c;就在IE-LAB国内最著名的高端网络工程师培养基地QOS是网络服务质量技术&#xff0c;是所有考试中都会有的考点&#xff0c;主要在SP的课程中详述&#xff0c;是高中低级的网工都有必要了解的技术。今天我们来…

LeetCode 1817. 查找用户活跃分钟数(哈希)

文章目录1. 题目2. 解题1. 题目 给你用户在 LeetCode 的操作日志&#xff0c;和一个整数 k 。 日志用一个二维整数数组 logs 表示&#xff0c;其中每个 logs[i] [IDi, timei] 表示 ID 为 IDi 的用户在 timei 分钟时执行了某个操作。 多个用户 可以同时执行操作&#xff0c;单…

日期传递过程_买东西别再只看生产日期和保质期了!快算算你一天吃了多少添加剂?...

开始今天的科普前&#xff0c;微医君先和大家讲一下我们办公室上周出现的“假”全麦面包事件。全麦面包是很多减肥人士最热衷的食物之一&#xff0c;小A也不例外。结果上周微医君帮她买面包时&#xff0c;就发现小A平时经常买的全麦面包是“假”的。为什么明明包装上写着“全麦…

第二次打开不是最大_舵手图解:大盘日线第二次形成买点信号

吾股舵手个人微信公众号&#xff1a;股民读书会&#xff08;ID&#xff1a;gumindushuihui&#xff09;声明&#xff1a;只做客观解读&#xff0c;不做主观预测&#xff0c;仅供参考&#xff0c;不作交易依据。择时看大盘&#xff0c;选股看行业。股票咨询请在文末留言。大盘涨…

Window phone用手机来控制电脑的多媒体播放

为了用电脑看电影时方便控制&#xff0c;我就突发其想&#xff0c;做一个手机app来通过无线网络远程调节电脑上的音量。后来进行尝试成功后&#xff0c;我就想&#xff0c;光是调音量似乎单调了些&#xff0c;就把播放/暂停&#xff0c;上一首&#xff0c;下一首&#xff0c;等…

华为正式发布鸿蒙智慧屏,5499 元、21999 元,2021 款华为智慧屏 V55/V85 明日 0 点正式开售:搭载鸿蒙系统...

IT之家 5 月 28 日消息 在今年 4 月份的华为全屋智能及智慧屏旗舰新品发布会上&#xff0c;华为智慧屏 V 系列 2021 款正式发布。新产品外观更加简洁&#xff0c;底部音响组件进一步隐藏&#xff0c;同时依旧采用弹出式 2400 万像素 AI 摄像头。今天&#xff0c;华为官方宣布&a…

LeetCode 1818. 绝对差值和(二分查找)

文章目录1. 题目2. 解题前三题&#xff0c;拼手速。最后一题暴力超时。1. 题目 给你两个正整数数组 nums1 和 nums2 &#xff0c;数组的长度都是 n 。 数组 nums1 和 nums2 的 绝对差值和 定义为所有 |nums1[i] - nums2[i]|&#xff08;0 < i < n&#xff09;的 总和&a…

LeetCode 1819. 序列中不同最大公约数的数目

文章目录1. 题目2. 解题1. 题目 给你一个由正整数组成的数组 nums 。 数字序列的 最大公约数 定义为序列中所有整数的共有约数中的最大整数。 例如&#xff0c;序列 [4,6,16] 的最大公约数是 2 。 数组的一个 子序列 本质是一个序列&#xff0c;可以通过删除数组中的某些元素…

1803无法升级到2004_汽车排放国标是什么意思:1/2/3/4/5/6的升级是为了什么?

全球各大汽车工业强国或地区都有汽车排放制造标准&#xff0c;知名度较高的有以下四组。美标欧标日标国标在上述标准中欧洲与日本开始实施的节点比较早&#xff0c;美国轻型汽车排放法规「Tier」与上世纪90年代开始实施&#xff0c;国标则是从2000年才开始。之所以要为汽车制造…

LeetCode LCP 28. 采购方案(排序 + 二分查找)

文章目录1. 题目2. 解题1. 题目 小力将 N 个零件的报价存于数组 nums。 小力预算为 target&#xff0c;假定小力仅购买两个零件&#xff0c;要求购买零件的花费不超过预算&#xff0c;请问他有多少种采购方案。 注意&#xff1a;答案需要以 1e9 7 (1000000007) 为底取模&…

@service注解_Spring 中 @Component、@Service 等注解如何被解析?

前言Component和Service都是工作中常用的注解&#xff0c;Spring如何解析&#xff1f;1.Component解析流程找入口Spring Framework2.0开始&#xff0c;引入可扩展的XML编程机制&#xff0c;该机制要求XML Schema命名空间需要与Handler建立映射关系。该关系配置在相对于classpat…

svg载入html,SVG系列教程:SVG简介与嵌入HTML页面的方式

随着技术向前的推进&#xff0c;SVG相关的讨论也越渐频繁。为了紧跟时代的步伐&#xff0c;我也开始步入SVG相关技术的探索与学习之中。从这篇文章开始会在W3cplus站点上陆续向大家推出有关于SVG相关的教程、译文或案例等。感兴趣的同学可以跟随着教程一起了解与学习SVG相关的知…

LeetCode LCP 30. 魔塔游戏(优先队列)

文章目录1. 题目2. 解题1. 题目 小扣当前位于魔塔游戏第一层&#xff0c;共有 N 个房间&#xff0c;编号为 0 ~ N-1。 每个房间的补血道具/怪物对于血量影响记于数组 nums&#xff0c;其中&#xff1a; 正数表示道具补血数值&#xff0c;即血量增加对应数值&#xff1b;负数表…