对Oracle、SQLServer、MySQL、PostgreSQL数据库优缺点
分析
优缺点分析
对Oracle 、SQL Server、MySQL、PostgreSQL数据库优缺点分析
Oracle Database
Oracle Database,⼜名Oracle RDBMS,或简称Oracle。是的⼀款。它是在数据库领域⼀直处于领先地位的产品。可以说Oracle数据库系统是⽬前世界上流⾏的关系数据库管理系统,系统可移植性好、使⽤⽅便、功能强,适⽤于各类⼤、中、⼩、微机环境。它是⼀种⾼效率、可靠性好的 适应⾼吞吐量的数据库解决⽅案。
优点
1. Oracle 能在所有主流平台上运⾏(包括 windows)完全⽀持所有⼯业标准采⽤完全开放策略使客户选择适合解决⽅案对开发商全⼒⽀持。
台湾今天的消息2. Oracle 并⾏服务器通过使组结点共享同簇⼯作来扩展windownt能⼒提供⾼⽤性和⾼伸缩性簇解决⽅案windowsNT能满⾜需要⽤户把数据库移UNIXOracle并⾏服务器对各种UNIX平台集机制都有着相当⾼集成度。
3. 获得最⾼认证级别的ISO标准认证。
4. Oracle 性能⾼ 保持开放平台下TPC-D和TPC-C世界记录。
5. Oracle 多层次⽹络计算⽀持多种⼯业标准⽤ODBC、JDBC、OCI等⽹络客户连接。
6. Oracle 长时间开发经验完全向下兼容得⼴泛应⽤地风险低。
缺点
1. 对硬件的要求很⾼。
2. 价格⽐较昂贵。
3. 管理维护⿇烦⼀些。
4. 操作⽐较复杂,需要技术含量较⾼。
SQL Server
SQL Server 是Microsoft 公司推出的关系型。具有使⽤可伸缩性好与相关集成⾼等,可跨越从Microsoft Windows 98 的膝上型到运⾏Microsoft Windows 2012 的⼤型多处理器的服务器等多种平台使⽤。
Microsoft SQL Server 是⼀个全⾯的数据库平台,使⽤的智能 (BI)提供了企业级的数据管理。Microsoft SQL Server 为关系型数据和化数据提供了更安全的功能,使您可以和管理⽤于的⾼可⽤和⾼性能的数据。
优点
1. 易⽤性、适合分布式组织的可伸缩性、⽤于决策⽀持的数据仓库功能、与许多其他服务器软件紧密关联的集成性、良好的性价⽐等;
2. 为数据管理与分析带来了灵活性,允许单位在快速变化的环境中从容响应,从⽽获得竞争优势。从数据管理和分析⾓度看,将原始数据转化为商业智能和充分利⽤Web带来的机会⾮常重要。作为⼀个完备的数据库和数据分析包,SQLServer为快速开发新⼀代企业级商业应⽤程序、为企业赢得核⼼竞争优势打开了胜利之门。 作为重要的基准测试可伸缩性和速度奖的记录保持者,SQLServer是⼀个具
备完全Web ⽀持的数据库产品,提供了对可扩展标记语⾔ (XML)的核⼼⽀持以及在Internet上和防⽕墙外进⾏查询的能⼒;
缺点
1. SQL Server 只能windows上运⾏,没有丝毫开放性操作系统,系统稳定对数据库⼗分重要,WindowsX系列产品偏重于桌⾯应
⽤,NT server只适合⼩型企业,⽽且windows平台可靠性、安全性和伸缩性⾮常有限。
2. SQL server 并⾏实施和共存模型并成熟难处理⽇益增多⽤户数和数据卷伸缩性有限;
3. 没有获得任何安全证书。
4. SQL Server 多⽤户时性能佳。
MySQL
MySQL 是⼀个,由瑞典 MySQL AB 公司开发,⽬前属于 旗下公司。MySQL在 WEB 应⽤⽅⾯ MySQL 是最好
的 RDBMS (Relational Database Management System,关系数据库管理系统) 应⽤软件之⼀。MySQL 是⼀种关联, 关联数据库将数据保存在不同的表中,⽽不是将所有数据放在⼀个⼤仓库内,这样就增加了速度并提⾼了灵活性。MySQL 所使⽤的 SQL 语⾔是⽤于访问数据库的最常⽤标准化语⾔。其社区版的性能卓越,搭配 和 可组成良好的开发环境。
优点
1. 体积⼩、速度快、总体拥有成本低,开源,提供的接⼝⽀持多种语⾔连接操作。
2. ⽀持多种操作系统。
3. MySQL 的核⼼程序采⽤完全的多线程编程。线程是轻量级的进程,它可以灵活地为⽤户提供服务,⽽不过多的系统资源。⽤多线程和C 语⾔实现的MySQL 能很容易充分利⽤CPU。
4. MySQL 有⼀个⾮常灵活⽽且安全的权限和⼝令系统。当客户与MySQL 服务器连接时,他们之间所有的⼝令传送被加密,⽽且
MySQL ⽀持主机认证。
5. MySQL 能够提供很多不同的使⽤者界⾯,包括命令⾏客户端操作,⽹页浏览器,以及各式各样的程序语⾔界⾯,例
如 C++,Perl,Java,PHP,以及Python。你可以使⽤事先包装好的客户端,或者⼲脆⾃⼰写⼀个合适的应⽤程序。MySQL可⽤
于 Unix,Windows,以及OS/2等平台,因此它可以⽤在个⼈电脑或者是服务器上。
缺点
1. 不⽀持热备份。
2. MySQL不⽀持⾃定义数据类型
3. MySQL最⼤的缺点是其安全系统,主要是复杂⽽⾮标准,另外只有到调⽤mysqladmin来重读⽤户权限时才发⽣改变。
4. MySQL对存储过程和触发器⽀持不够良好。
5. 尽管 MySQL 理论上仍是开源产品,也有⼈抱怨它诞⽣之后更新缓慢。然⽽,应该注意到有⼀些基于 MySQL 并完整集成的数据库
(如 MariaDB),在标准的 MySQL 基础上带来了额外价值。
6. MySQL对XML⽀持不够良好
何时使⽤ ?
1. 分布式操作:
当你需要的⽐SQLite可以提供的更多时,把MySQL包括进你的部署栈,就像任何⼀个独⽴的数据库服务器,会带来⼤量的操作⾃由和⼀些先进的功能。
2. ⾼安全性:
MySQL的安全功能,⽤⼀种简单的⽅式为数据访问(和使⽤)提供了可靠的保护。
3. Web⽹站和 Web应⽤:
绝⼤多数的⽹站(和Web应⽤程序)可以忽视约束性地简单⼯作在MySQL上。这种灵活的和可扩展的⼯具是易于使⽤和易于管理的——这被证明⾮常有助于长期运⾏。
4. 定制解决⽅案:
如果你⼯作在⼀个⾼度量⾝定制的解决⽅案上,MySQL能够很容易地尾随和执⾏你的规则,这要感谢
其丰富的配置设置和操作模式。
何时不⽤ ?
1. SQL 服从性:
因为 MySQL 没有[想要]实现 SQL 的全部标准,所以这个⼯具不完全符合SQL。如果你需要对这样的关系数据库管理系统进⾏整合,
从MySQL进⾏切换是不容易的。
2. 并发:
即使MySQL和⼀些存储引擎能够真地很好执⾏读取操作,但并发读写还是有问题的。
3. 缺乏特⾊:
再次提及,根据数据库引擎的选择标准,MySQL会缺乏⼀定的特性,如全⽂搜索。
PostgreSQL
spring to mind
PostgreSQL是⼀个⾃由的对象-关系数据库服务器(数据库管理系统),⽀持⼤部分 SQL标准并且提供了许多其他现代特性:复杂查询、外键、触发器、视图、事务完整性、MVCC。同样,PostgreSQL 可以⽤许多⽅法扩展,⽐如,通过增加新的数据类型、函数、操作符、聚集函数、索引。免费使⽤、修改、和分发 PostgreSQL。
优点
1. PostgreSQL 是⼀个开源的,免费的,同时⾮常强⼤的关系型数据管理系统。
2. PostgreSQL 背后有热忱⽽经验丰富的社区,可以通过知识库和问答⽹站获取⽀持,全天候免费。
摘要汇编是什么意思3. 即使其本⾝功能⼗分强⼤,PostgreSQL 仍附带有许多强⼤的开源第三⽅⼯具来辅助系统的设计、管理和使⽤。
4. 可以⽤预先存储的流程来程序性扩展 PostgreSQL ,⼀个⾼级的关系型数据库理应如此。
5. PostgreSQL 不只是⼀个关系型数据库,还是⼀个⾯向对象数据库——⽀持嵌套,及⼀些其他功能。
缺点
1. 对于简单⽽繁重的读取操作, 超过了 PostgreSQL 的杀伤⼒,可能会出现⽐同⾏(如MySQL)更低的性能。
2. 按给出的该⼯具的性质,从普及度来说它还缺乏⾜够后台⽀撑,尽管有⼤量的部署——这可能会影响能够获得⽀持的容易程度。
何时使⽤?
1. 数据完整性:
mysql语句转oracle当可靠性和数据完整性是绝对必要⽽⽆需理由时,PostgreSQL是更好的选择。
2. 复杂的⾃定义过程:
如果你需要你的数据库执⾏⾃定义过程,可扩展的PostgreSQL是更好的选择。
3. 整合:
在将来,如果可能要把整个数据库系统迁移到另⼀个适当的解决⽅案(例如Oracle)中,PostgreSQL对于这种切换将是最兼容和易于操作的。
4. 复杂的设计:
相⽐其他的开源和免费的 RDBMS(关系数据库管理系统)实现来说,对于复杂的数据库设计,PostgreSQL提供了⼤部分的功能和可能性,同时并没放弃其他有价值的地⽅。
何时不⽤?
1. 速度:
如果你需要的只是快速的读取操作, PostgreSQL 不是为此⽽准备的⼯具。
2. 简化体制:
除⾮你需要绝对的数据完整性,原⼦性,⼀致性,隔离性,耐久性,或复杂的设计,PostgreSQL 对简化体制来说是杀⼿。
3. 复制:
除⾮你愿意花不少时间,精⼒和资源,否则对于那些缺乏数据库和系统管理经验的⼈来说,实现与MySQL的(主从)复制可能不容易。摘:
为了说明PostgreSQL的功能,我下⾯简要对⽐⼀下PostgreSQL数据库与MySQL数据库之间的差异:
我们先借助Jametong翻译的"从Oracle迁移到Mysql之前必须知道的50件事",看⼀看如何把Oracle转到MySQL中的困难:
50 things to know before migrating Oracle to MySQL
by Baron Schwartz,Translated by Jametong
1. 对⼦查询的优化表现不佳.
2. 对复杂查询的处理较弱
3. 查询优化器不够成熟
4. 性能优化⼯具与度量信息不⾜
5. 审计功能相对较弱
6. 安全功能不成熟,甚⾄可以说很粗糙.没有⽤户组与⾓⾊的概念,没有回收权限的功能(仅仅可以授予权限).当⼀个⽤户从不同的主机/⽹络以同样地⽤户名/密码登录之后,可能被当作完全不同的⽤户来
处理.没有类似于Oracle的内置的加密功能.
7. ⾝份验证功能是完全内置的.不⽀持LDAP,Active Directory以及其它类似的外部⾝份验证功能.
8. Mysql Cluster可能与你的想象有较⼤差异.
9. 存储过程与触发器的功能有限.
10. 垂直扩展性较弱.
11. 不⽀持MPP(⼤规模并⾏处理).
12. ⽀持SMP(对称多处理器),但是如果每个处理器超过4或8个核(core)时,Mysql的扩展性表现较差.
13. 对于时间、⽇期、间隔等时间类型没有秒以下级别的存储类型.
14. 可⽤来编写存储过程、触发器、计划事件以及存储函数的语⾔功能较弱.
15. 没有基于回滚(roll-back)的恢复功能,只有前滚(roll-forward)的恢复功能.
16. 不⽀持快照功能.
17. 不⽀持数据库链(database link).有⼀种叫做Federated的存储引擎可以作为⼀个中转将查询语句传递到远程服务器的⼀个表上,不过,它功能很粗糙并且漏洞很多.
18. 数据完整性检查⾮常薄弱,即使是基本的完整性约束,也往往不能执⾏。
19. 优化查询语句执⾏计划的优化器提⽰⾮常少.
20. 只有⼀种表连接类型:嵌套循环连接(nested-loop),不⽀持排序-合并连接(sort-merge join)与散列连接(hash join).
21. ⼤部分查询只能使⽤表上的单⼀索引;在某些情况下,会存在使⽤多个索引的查询,但是查询优化器通常会低估其成本,它们常常⽐表扫描还要慢.
22. 不⽀持位图索引(bitmap index).每种存储引擎都⽀持不同类型的索引.⼤部分存储引擎都⽀持B-Tree索引.
23. 管理⼯具较少,功能也不够成熟.
24. 没有成熟能够令⼈满意的IDE⼯具与调试程序.可能不得不在⽂本编辑器中编写存储过程,并且通过往表(调试⽇志表)中插⼊记录的⽅式来做调试.
25. 每个表都可以使⽤⼀种不同的存储引擎.
26. 每个存储引擎在⾏为表现、特性以及功能上都可能有很⼤差异.
27. ⼤部分存储引擎都不⽀持外键.
28. 默认的存储引擎(MyISAM)不⽀持事务,并且很容易损坏.
29. 最先进最流⾏的存储引擎InnoDB由Oracle拥有.
30. 有些执⾏计划只⽀持特定的存储引擎.特定类型的Count查询,在这种存储引擎中执⾏很快,在另外⼀种存储引擎中可能会很慢.
华南师大经管学院31. 执⾏计划并不是全局共享的,,仅仅在连接内部是共享的.
32. 全⽂搜索功能有限, 只适⽤于⾮事务性存储引擎. Ditto⽤于地理信息系统/空间类型和查询.
33. 没有资源控制.⼀个完全未经授权的⽤户可以毫不费⼒地耗尽服务器的所有内存并使其崩溃,或者可以耗尽所有CPU资源.
34. 没有集成商业智能(business intelligence), OLAP **数据集等软件包.
36. 没有类似于RAC的功能.如果你问”如何使⽤Mysql来构造RAC”,只能说你问错了问题.
37. 不⽀持⽤户⾃定义类型或域(domain).
38. 每个查询⽀持的连接的数量最⼤为61.
请写出html和css分别如何注释39. MySQL⽀持的SQL语法(ANSI SQL标准)的很⼩⼀部分.不⽀持递归查询、通⽤表表达式(Oracle的with 语句)或者窗⼝函数(分析函数).⽀持部分类似于Merge或者类似特性的SQL语法扩展,不过相对于Oracle来讲功能⾮常简单.
40. 不⽀持功能列(基于计算或者表达式的列,Oracle11g 开始⽀持计算列,以及早期版本就⽀持虚列(rownum,rowid)).
41. 不⽀持函数索引,只能在创建基于具体列的索引.
42. 不⽀持物化视图.
43. 不同的存储引擎之间,统计信息差别很⼤,并且所有的存储引擎⽀持的统计信息都只⽀持简单的基数(cardinality)与⼀定范围内的记录数(rows-in-a-range). 换句话说,数据分布统计信息是有限的.更新统计信息的机制也不多.
44. 没有内置的负载均衡与故障切换机制.
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论