各类数据库性能差异对比
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3. 它通过一个高度优化的类库实现SQL函数库并像他们能达到的一样快速,通常在查询初始化后不该 有任何内存分配。没有内存漏洞。
4. 全面支持SQL的GROUP BY和ORDER BY子句,支持聚合函数(COUNT()、COUNT(DISTINCT)、AVG()、 STD()、SUM()、MAX()和MIN())。可以在同一查询中混来自不同数据库的表。
C/S 一般建立在Window平台上,小范围里的网络环境,局域网之间再通过专门服务器提供连接和数据交 换服务。用户面固定,并且在相同区域,安全要求高,需求与操作系统相关. 应该都是相同的系统. B/S 建立在浏览器上,广域网之上,面向不同的用户群,分散地域, 这是C/S无法作到的。与操作系统 平台关系最小。
2、 MySQL的另一个主要的缺陷之一是缺乏标准的参照完整性(Referential Integrity-RI)机制;Rl限制的 缺乏(在给定字段域上的一种固定的范围限制)可以通过大量的数据类型来补偿。
MySQL
3、 MySQL没有一种存储过程(Stored Procedure)语言,这是对习惯于企业级数据库的程序员的最大限制。 4、 MySQL不支持热备份。 5、使用myisam配置,如果不慎损坏数据库,结果可能会导致所有的数据丢失。
层次式数据库
使用树状结构来组织数据,数据之间是以父子关系创建连接,子记录只能拥有一个父记录。 (1)有且只有一个结点没有双亲结点(这个结点叫根结点); (2)除根结点外的其他结点有且只有一个双亲结点。
层级式数据库模型拥有两种基本类型,如下所示。
记录类型(Record Type):记录类型是由一组字段属性组成。每一个记录类型的成员称为记录,数据 是一组记录的集合。
Oracle
提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户端/服务 器(CLIENT/SERVER)或浏览器/服务器(Browser/Server)结构的数据库之一。 ORACLE数据库是目前世界上使用最为广泛的数据库管理系统,作为一个通用 的数据库系统,它具有完整的数据管理功能;作为一个关系数据库,它是一 个完备关系的产品;作为分布式数据库它实现了分布式处理功能。
关系式数据库
Oracle
在数据库领域一直处于领先地位的产品。系统可移植性好、使用方便、功能 强,适用于各类大、中、小、微机环境。它是一种效率高、可靠性好、适应 高吞吐量的数据库解决方案。
没有一个开源数据库具有可以与Oracle相媲美的事务处理功能。
能在所有主流平台上运行(包括 windows)。完全支持所有的工业标准。可 以使客户选择最适合的解决方案。对开发商全力支持。
Oracle
截止至2015年01月,甲骨文公司的Oracle10g/11g/12c支持以下的操作系统和 硬件(Oracle数据库最新版本为Oracle Database 12c):
· AppleMac OS X Server:PowerPC · HPHP-UX:PA-RISC,Itanium · HPTru64 UNIX:Alpha · HPOpenVMS: Alpha, Itanium · IBMAIX5L:IBM POWER · IBMz/OS:zSeries · Linux:x86,x86-64, PowerPC, zSeries, Itanium · MicrosoftWindows: x86, x86-64, Itanium · SunSolaris:SPARC, x86, x86-64
父子关系类型(Parent-child Relationship Type):两个记录类型之间的连接类型属于一对多关系 (Relationship),这是从“父记录类型”(Parent Record Type)关系到多个“子记录类型”(Child Record Type)。
层次式数据库
层级式数据库模型是由多个记录类型,然后使用父子关系类型将它们连接起来。 下图拥有出版商、作者和图书三种记录类型,其中出版商是两个父子关系类型的父记录类型,作者和 图书是一个父子关系类型的子记录类型。
网络式数据库
网络式数据库模型是创建在两种“集合结构”(Set Structures),也就是一组记录类型的记录集合(A Set of Records)和一组连接类型的连接集合(A Set of Links). 拥有客户、分行和账户三种记录类型,客户-账户和分行-账户两种连接类型。客户和分行是所有者类 型(Owner Type),账户是成员类型(Member Type)。客户和账户记录类型是使用客户-账户连接类型来 创建一对多的拥有关系性,同样地,分行和账户记录类型是以分行-账户连接类型创建一对多的拥有 关系性。简单地说,客户可以拥有多个账户,银行分行也能拥有多个账户。
PostgreSQL (Post-gres-Q-L)
PostgreSQL 是一个客户/服务器(CLIENT/SERVER)结构数据库服务器(在灵活的 BSD-风格许可证下发行。它提供了相对其他开放源代码数据库系统(比如 MySQL 和 Firebird),和专有系统(比如 Oracle、Sybase、IBM 的 DB2 和 Microsoft SQL Server)之外的另一种选择。
层次式数据库
层级式数据库模型的父子关系是一个父亲允许有多个儿子,可是儿子只能有一个父亲。完整图书出版 的层级式数据库. 出版商拥有两位签约作者和出版3本书,在层级式数据库中访问子记录一定要从父记录开始,因为父 记录拥有低级指针指向子记录,这是一种一对一或一对多关系(Relationships)。
层次式数据库
关系式数据库
理论基础是数学的集合论(Set Theory)。支持一对一、一对多和多对多关系性。 关系数据库模型的组成元素如下所示。
数据结构(Data Structures):数据的组成方式,以关系数据库模型来说,就是行和列组成表格的关系表 (Relations)。 数据操作或运算(Data Manipulation或Operations):数据的相关操作是关系型算术(Relational Algebra)和 关系型计算(Relational Calculus)。 完整性约束(Integrity Constraints):维护数据完整性的条件,其目的是确保储存的数据是合法和正确的 数据。
MySQL的读写性能确实一流,即使针对大数据量也没问题,但前提是必须使用简单查询,就是最好不 要使用函数/join/group等方式查询。
MySQL
使用场景 广泛地应用在Internet上的中小型网站中。 LAMP(Linux+Apache+Mysql+Php)。 mysql的优势在于免费,如果业务系统数据库不是极其庞大,可用mysql。
由于MySQL的开源特性,针对一些对数据库有特别要求的应用,可以通过修改代码来实现定向优化.
特点: 1. 它使用的核心线程是完全多线程,支持多处理器。
2. 有多种列类型:1、2、3、4、和8字节长度自有符号/无符号整数、FLOAT、DOUBLE、CHAR、 VARCHAR、TEXT、BLOB、DATE、TIME、DATETIME、 TIMESTAMP、YEAR、和ENUM类型。
对于多对多关系性(Relationships)来说,在层级式数据库模型可以重复相同的记录类型。
网络式数据库
网络式数据库模型(Network Database Model)是将数据连接成网状图形,支持多对多关系性 (Relationship),而且资料之间的连接可以有循环。
网络式数据库模型拥有两种基本类型,如下所示。 记录类型(Record Type):记录类型是由一组属性组成,每一个记录类型的成员称为记录,数据是一组 记录的集合。 连接类型(Link Type):它是连接两个记录类型的类型,属于一对多关系(Relationship),这是从称为 “所有者类型”(Owner Type)关系到多个“成员类型”(Member Type)。
Orwk.baidu.comcle
收费依据两种方式: (1)按照用户数购买许可证年限 (2)按照cpu数购买许可证年限 (建议用户数超过50人使用cpu方式购买)
MySQL
属于 Oracle 旗下且开放源码的产品。 Linux作为操作系统,Apache 或Nginx作为 Web 服务器,MySQL 作为数据库,PHP/Perl/Python作为服务 器端脚本解释器。由于这四个软件都是免费或开放源码软件(FLOSS),因此使用这种方式不用花一分钱 (除开人工成本)就可以建立起一个稳定、免费的网站系统,被业界称为“LAMP“或“LNMP”组合。
MySQL
5. 支持ANSI SQL的LEFT 0UTER JOIN和ODBC。 6. 所有列都有缺省值。你可以用INSERT插入一个表列的子集,那些没用明确给定值的列设置为他们的 缺省值。
7. MySQL可以工作在不同的平台上。支持C、C++、Java、Perl、PHP、Python和TCL API。 MySQL的缺点: 1、 MySQL最大的缺点是其安全系统,主要是复杂而非标准,另外只有到调用mysql admin来重读用户权 限时才发生改变。
Oracle
阿里巴巴去oracle(去IOE)
IOE(IBM的存储设备和小型机,Oracle数据库,大量EMC2的存储设备)
MySQL和Hadoop(MySQL数据库+PC Server)解决方案
Oracle技术本身也是没有任何问题的;只是把一些数据量非常庞大,且允许出现小概率数据丢失的业务 迁移或直接采用开源数据库解决方案(主要是MySQL);去Orac le既出于节约成本的考虑,又由于 Oracle对大规模互联网应用支持力不从心。
数据库存储
层次式数据库 网络式数据库 关系式数据库
关系型数据库
Oracle MySQL MariaDB SqlServer Access DB2,PostgreSQL,Informix,SyBase...
数据库分类
非关系型数据库
键值存储数据库 Redis,LevelDB 文档存储数据库 MongoDB,CouchDB 列存储数据库 Hbase 图数据库 Neo4J
MariaDB
MariaDB数据库管理系统是MySQL的一个分支,开发这个分支的原因之一是:甲骨文公司收购了MySQL 后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险。 MariaDB基于事务的Maria存储引擎,替换了MySQL的MyISAM存储引擎(MyISAM MySQL 5.0 之前的默认 数据库引擎,最为常用。拥有较高的插入,查询速度,但不支持事务)。 MariaDB直到5.5版本,均依照MySQL的版本。因此,使用MariaDB5.5的人会从MySQL 5.5中了解到 MariaDB的所有功能。 从2012年11月12日起发布的10.0.0版开始,不再依照MySQL的版号。10.0.x版以5.5版为基础,加上移植 自MySQL 5.6版的功能和自行开发的新功能。
Oracle
Oracle处理并发强,锁机制非常适合对并发性要求很高的应用。 主要在传统行业的数据化业务中,比如:银行、金融这样的对可用性、健壮 性、安全性、实时性要求极高的业务;零售、物流这样对海量数据存储分析 要求很高的业务。此外,高新制造业如芯片厂也基本都离不开Oracle;电商也 有很多使用者,如京东(正在投奔Oracle)、阿里巴巴(计划去Oracle化)。 而且由于Oracle对复杂计算、统计分析的强大支持,在互联网数据分析、数据 挖掘方面的应用也越来越多。
网络式数据库
在网络式数据库模型的一个成员类型记录可以有多个所有者类型的记录。例如:一个账户拥有客户和 分行两个所有者类型的记录。完整银行分行账户的网络式数据库如下图。
实心箭头线是客户-账户连接类型,虚 线是分行-账户连接类型,通过连接可 以走访记录类型的记录。例如,客户 【陈会安】可以使用客户-账户连接走 访其账户:A001、A002和A003。三亚 分行可以使用分行-账户连接走访其账 户:A003和A005。 客户和分行是一种多对多关系性,客户 可以在多家分行开账户,分行也允许不 同客户开账户,只需使用客户-账户连 接和分行-账户连接就可以取得记录类 型之间的关系性。
4. 全面支持SQL的GROUP BY和ORDER BY子句,支持聚合函数(COUNT()、COUNT(DISTINCT)、AVG()、 STD()、SUM()、MAX()和MIN())。可以在同一查询中混来自不同数据库的表。
C/S 一般建立在Window平台上,小范围里的网络环境,局域网之间再通过专门服务器提供连接和数据交 换服务。用户面固定,并且在相同区域,安全要求高,需求与操作系统相关. 应该都是相同的系统. B/S 建立在浏览器上,广域网之上,面向不同的用户群,分散地域, 这是C/S无法作到的。与操作系统 平台关系最小。
2、 MySQL的另一个主要的缺陷之一是缺乏标准的参照完整性(Referential Integrity-RI)机制;Rl限制的 缺乏(在给定字段域上的一种固定的范围限制)可以通过大量的数据类型来补偿。
MySQL
3、 MySQL没有一种存储过程(Stored Procedure)语言,这是对习惯于企业级数据库的程序员的最大限制。 4、 MySQL不支持热备份。 5、使用myisam配置,如果不慎损坏数据库,结果可能会导致所有的数据丢失。
层次式数据库
使用树状结构来组织数据,数据之间是以父子关系创建连接,子记录只能拥有一个父记录。 (1)有且只有一个结点没有双亲结点(这个结点叫根结点); (2)除根结点外的其他结点有且只有一个双亲结点。
层级式数据库模型拥有两种基本类型,如下所示。
记录类型(Record Type):记录类型是由一组字段属性组成。每一个记录类型的成员称为记录,数据 是一组记录的集合。
Oracle
提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户端/服务 器(CLIENT/SERVER)或浏览器/服务器(Browser/Server)结构的数据库之一。 ORACLE数据库是目前世界上使用最为广泛的数据库管理系统,作为一个通用 的数据库系统,它具有完整的数据管理功能;作为一个关系数据库,它是一 个完备关系的产品;作为分布式数据库它实现了分布式处理功能。
关系式数据库
Oracle
在数据库领域一直处于领先地位的产品。系统可移植性好、使用方便、功能 强,适用于各类大、中、小、微机环境。它是一种效率高、可靠性好、适应 高吞吐量的数据库解决方案。
没有一个开源数据库具有可以与Oracle相媲美的事务处理功能。
能在所有主流平台上运行(包括 windows)。完全支持所有的工业标准。可 以使客户选择最适合的解决方案。对开发商全力支持。
Oracle
截止至2015年01月,甲骨文公司的Oracle10g/11g/12c支持以下的操作系统和 硬件(Oracle数据库最新版本为Oracle Database 12c):
· AppleMac OS X Server:PowerPC · HPHP-UX:PA-RISC,Itanium · HPTru64 UNIX:Alpha · HPOpenVMS: Alpha, Itanium · IBMAIX5L:IBM POWER · IBMz/OS:zSeries · Linux:x86,x86-64, PowerPC, zSeries, Itanium · MicrosoftWindows: x86, x86-64, Itanium · SunSolaris:SPARC, x86, x86-64
父子关系类型(Parent-child Relationship Type):两个记录类型之间的连接类型属于一对多关系 (Relationship),这是从“父记录类型”(Parent Record Type)关系到多个“子记录类型”(Child Record Type)。
层次式数据库
层级式数据库模型是由多个记录类型,然后使用父子关系类型将它们连接起来。 下图拥有出版商、作者和图书三种记录类型,其中出版商是两个父子关系类型的父记录类型,作者和 图书是一个父子关系类型的子记录类型。
网络式数据库
网络式数据库模型是创建在两种“集合结构”(Set Structures),也就是一组记录类型的记录集合(A Set of Records)和一组连接类型的连接集合(A Set of Links). 拥有客户、分行和账户三种记录类型,客户-账户和分行-账户两种连接类型。客户和分行是所有者类 型(Owner Type),账户是成员类型(Member Type)。客户和账户记录类型是使用客户-账户连接类型来 创建一对多的拥有关系性,同样地,分行和账户记录类型是以分行-账户连接类型创建一对多的拥有 关系性。简单地说,客户可以拥有多个账户,银行分行也能拥有多个账户。
PostgreSQL (Post-gres-Q-L)
PostgreSQL 是一个客户/服务器(CLIENT/SERVER)结构数据库服务器(在灵活的 BSD-风格许可证下发行。它提供了相对其他开放源代码数据库系统(比如 MySQL 和 Firebird),和专有系统(比如 Oracle、Sybase、IBM 的 DB2 和 Microsoft SQL Server)之外的另一种选择。
层次式数据库
层级式数据库模型的父子关系是一个父亲允许有多个儿子,可是儿子只能有一个父亲。完整图书出版 的层级式数据库. 出版商拥有两位签约作者和出版3本书,在层级式数据库中访问子记录一定要从父记录开始,因为父 记录拥有低级指针指向子记录,这是一种一对一或一对多关系(Relationships)。
层次式数据库
关系式数据库
理论基础是数学的集合论(Set Theory)。支持一对一、一对多和多对多关系性。 关系数据库模型的组成元素如下所示。
数据结构(Data Structures):数据的组成方式,以关系数据库模型来说,就是行和列组成表格的关系表 (Relations)。 数据操作或运算(Data Manipulation或Operations):数据的相关操作是关系型算术(Relational Algebra)和 关系型计算(Relational Calculus)。 完整性约束(Integrity Constraints):维护数据完整性的条件,其目的是确保储存的数据是合法和正确的 数据。
MySQL的读写性能确实一流,即使针对大数据量也没问题,但前提是必须使用简单查询,就是最好不 要使用函数/join/group等方式查询。
MySQL
使用场景 广泛地应用在Internet上的中小型网站中。 LAMP(Linux+Apache+Mysql+Php)。 mysql的优势在于免费,如果业务系统数据库不是极其庞大,可用mysql。
由于MySQL的开源特性,针对一些对数据库有特别要求的应用,可以通过修改代码来实现定向优化.
特点: 1. 它使用的核心线程是完全多线程,支持多处理器。
2. 有多种列类型:1、2、3、4、和8字节长度自有符号/无符号整数、FLOAT、DOUBLE、CHAR、 VARCHAR、TEXT、BLOB、DATE、TIME、DATETIME、 TIMESTAMP、YEAR、和ENUM类型。
对于多对多关系性(Relationships)来说,在层级式数据库模型可以重复相同的记录类型。
网络式数据库
网络式数据库模型(Network Database Model)是将数据连接成网状图形,支持多对多关系性 (Relationship),而且资料之间的连接可以有循环。
网络式数据库模型拥有两种基本类型,如下所示。 记录类型(Record Type):记录类型是由一组属性组成,每一个记录类型的成员称为记录,数据是一组 记录的集合。 连接类型(Link Type):它是连接两个记录类型的类型,属于一对多关系(Relationship),这是从称为 “所有者类型”(Owner Type)关系到多个“成员类型”(Member Type)。
Orwk.baidu.comcle
收费依据两种方式: (1)按照用户数购买许可证年限 (2)按照cpu数购买许可证年限 (建议用户数超过50人使用cpu方式购买)
MySQL
属于 Oracle 旗下且开放源码的产品。 Linux作为操作系统,Apache 或Nginx作为 Web 服务器,MySQL 作为数据库,PHP/Perl/Python作为服务 器端脚本解释器。由于这四个软件都是免费或开放源码软件(FLOSS),因此使用这种方式不用花一分钱 (除开人工成本)就可以建立起一个稳定、免费的网站系统,被业界称为“LAMP“或“LNMP”组合。
MySQL
5. 支持ANSI SQL的LEFT 0UTER JOIN和ODBC。 6. 所有列都有缺省值。你可以用INSERT插入一个表列的子集,那些没用明确给定值的列设置为他们的 缺省值。
7. MySQL可以工作在不同的平台上。支持C、C++、Java、Perl、PHP、Python和TCL API。 MySQL的缺点: 1、 MySQL最大的缺点是其安全系统,主要是复杂而非标准,另外只有到调用mysql admin来重读用户权 限时才发生改变。
Oracle
阿里巴巴去oracle(去IOE)
IOE(IBM的存储设备和小型机,Oracle数据库,大量EMC2的存储设备)
MySQL和Hadoop(MySQL数据库+PC Server)解决方案
Oracle技术本身也是没有任何问题的;只是把一些数据量非常庞大,且允许出现小概率数据丢失的业务 迁移或直接采用开源数据库解决方案(主要是MySQL);去Orac le既出于节约成本的考虑,又由于 Oracle对大规模互联网应用支持力不从心。
数据库存储
层次式数据库 网络式数据库 关系式数据库
关系型数据库
Oracle MySQL MariaDB SqlServer Access DB2,PostgreSQL,Informix,SyBase...
数据库分类
非关系型数据库
键值存储数据库 Redis,LevelDB 文档存储数据库 MongoDB,CouchDB 列存储数据库 Hbase 图数据库 Neo4J
MariaDB
MariaDB数据库管理系统是MySQL的一个分支,开发这个分支的原因之一是:甲骨文公司收购了MySQL 后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险。 MariaDB基于事务的Maria存储引擎,替换了MySQL的MyISAM存储引擎(MyISAM MySQL 5.0 之前的默认 数据库引擎,最为常用。拥有较高的插入,查询速度,但不支持事务)。 MariaDB直到5.5版本,均依照MySQL的版本。因此,使用MariaDB5.5的人会从MySQL 5.5中了解到 MariaDB的所有功能。 从2012年11月12日起发布的10.0.0版开始,不再依照MySQL的版号。10.0.x版以5.5版为基础,加上移植 自MySQL 5.6版的功能和自行开发的新功能。
Oracle
Oracle处理并发强,锁机制非常适合对并发性要求很高的应用。 主要在传统行业的数据化业务中,比如:银行、金融这样的对可用性、健壮 性、安全性、实时性要求极高的业务;零售、物流这样对海量数据存储分析 要求很高的业务。此外,高新制造业如芯片厂也基本都离不开Oracle;电商也 有很多使用者,如京东(正在投奔Oracle)、阿里巴巴(计划去Oracle化)。 而且由于Oracle对复杂计算、统计分析的强大支持,在互联网数据分析、数据 挖掘方面的应用也越来越多。
网络式数据库
在网络式数据库模型的一个成员类型记录可以有多个所有者类型的记录。例如:一个账户拥有客户和 分行两个所有者类型的记录。完整银行分行账户的网络式数据库如下图。
实心箭头线是客户-账户连接类型,虚 线是分行-账户连接类型,通过连接可 以走访记录类型的记录。例如,客户 【陈会安】可以使用客户-账户连接走 访其账户:A001、A002和A003。三亚 分行可以使用分行-账户连接走访其账 户:A003和A005。 客户和分行是一种多对多关系性,客户 可以在多家分行开账户,分行也允许不 同客户开账户,只需使用客户-账户连 接和分行-账户连接就可以取得记录类 型之间的关系性。