当前位置:  开发笔记 > 后端 > 正文

数据库之间有哪些主要区别?

如何解决《数据库之间有哪些主要区别?》经验,为你挑选了1个好方法。

我不是任何数据库的狂热者,但我希望看到供应商之间的差异.

例如,我主要使用Oracle,我发现其他人(MySQL,SQL Server,PostgreSQL,...)不能这样做:

通过查询连接.

模型查询.

闪回(查询,表和数据库).

SQL Server也是如此,其他人无法做到:

最佳结果.

Troels Arvin.. 23

Oracle的CONNECT BY是标准SQL的递归SQL的有限版本.DB2和MSSQL递归的"公用表表达式"有点难以编码,但提供的功能比Oracle的CONNECT BY更强大.(不过,下一版本的Oracle数据库应该会得到真正的递归SQL.)

Flash back是一个真正独特的Oracle功能,它反映了MVCC在Oracle中的深度.与传统的悲观锁定相反,MVCC是Oracle处理并发的方式; 并发处理是数据库之间存在很大差异的地方之一(尽管大多数DBMS仅仅基于悲观锁定而远离并发).在我看来,Oracle坚定地建立MVCC的事实是一个重要的优势.

关于TOP结果:所有DBMS都有办法做到这一点.

除此之外:

SQL-wise:Oracle拥有最先进且符合标准的日期时间处理.Oracle在与OLAP相关的函数方面很强大(但DB2和MSSQL也是如此; OLAP函数是开源DBMS在跟上时遇到一些麻烦的一个领域).最近,Oracle似乎基本上忽略了SQL标准,因为它的标准合规性是停滞不前的(例如,与MSSQL相比,这里已经有了很大的改进); 由于甲骨文的巨大市场份额,我把这归咎于傲慢.

从概念上讲:Oracle和MySQL是处理数据库的两种截然不同的方式的示例.在Oracle中,创建数据库需要永远,并且数据库是一个非常重的对象,因此在Oracle世界中,数据库往往包含许多表,可能在不同的"模式"中.在MySQL中,数据库是一个非常轻量级的对象,所以MySQLers往往拥有许多数据库,每个数据库中的表相对较少(这可能就是为什么他们似乎并不抱怨MySQL缺少模式).

Oracle(如DB2)是一个几乎包含整个操作系统的DBMS示例:它执行许多功能,像MSMS/MySQL/PostgreSQL这样的DBMS可以让操作系统的文件系统和虚拟内存系统处理.就个人而言,我更喜欢后一种方法,但无论使用哪种操作系统,Oracle的方式都使Oracle的性能大致相同.

与MSSQL相比,Oracle在更多平台上运行(与大多数其他DBMS一样; MSSQL可能是唯一在Windows上运行的重要DBMS ).

与大多数其他DBMS相比,Oracle提供了另一种集群方式:RAC.我听过很多关于RAC的恐怖故事,但是如果你能让它发挥作用,可以公平地说你有一个非常强大(且昂贵)的集群解决方案.

关于管理,与大多数其他DBMS相比,我发现Oracle管理起来非常复杂.

然后,存在严重的价格差异,当然:甲骨文的定价非常高,而且还在上升.



1> Troels Arvin..:

Oracle的CONNECT BY是标准SQL的递归SQL的有限版本.DB2和MSSQL递归的"公用表表达式"有点难以编码,但提供的功能比Oracle的CONNECT BY更强大.(不过,下一版本的Oracle数据库应该会得到真正的递归SQL.)

Flash back是一个真正独特的Oracle功能,它反映了MVCC在Oracle中的深度.与传统的悲观锁定相反,MVCC是Oracle处理并发的方式; 并发处理是数据库之间存在很大差异的地方之一(尽管大多数DBMS仅仅基于悲观锁定而远离并发).在我看来,Oracle坚定地建立MVCC的事实是一个重要的优势.

关于TOP结果:所有DBMS都有办法做到这一点.

除此之外:

SQL-wise:Oracle拥有最先进且符合标准的日期时间处理.Oracle在与OLAP相关的函数方面很强大(但DB2和MSSQL也是如此; OLAP函数是开源DBMS在跟上时遇到一些麻烦的一个领域).最近,Oracle似乎基本上忽略了SQL标准,因为它的标准合规性是停滞不前的(例如,与MSSQL相比,这里已经有了很大的改进); 由于甲骨文的巨大市场份额,我把这归咎于傲慢.

从概念上讲:Oracle和MySQL是处理数据库的两种截然不同的方式的示例.在Oracle中,创建数据库需要永远,并且数据库是一个非常重的对象,因此在Oracle世界中,数据库往往包含许多表,可能在不同的"模式"中.在MySQL中,数据库是一个非常轻量级的对象,所以MySQLers往往拥有许多数据库,每个数据库中的表相对较少(这可能就是为什么他们似乎并不抱怨MySQL缺少模式).

Oracle(如DB2)是一个几乎包含整个操作系统的DBMS示例:它执行许多功能,像MSMS/MySQL/PostgreSQL这样的DBMS可以让操作系统的文件系统和虚拟内存系统处理.就个人而言,我更喜欢后一种方法,但无论使用哪种操作系统,Oracle的方式都使Oracle的性能大致相同.

与MSSQL相比,Oracle在更多平台上运行(与大多数其他DBMS一样; MSSQL可能是唯一在Windows上运行的重要DBMS ).

与大多数其他DBMS相比,Oracle提供了另一种集群方式:RAC.我听过很多关于RAC的恐怖故事,但是如果你能让它发挥作用,可以公平地说你有一个非常强大(且昂贵)的集群解决方案.

关于管理,与大多数其他DBMS相比,我发现Oracle管理起来非常复杂.

然后,存在严重的价格差异,当然:甲骨文的定价非常高,而且还在上升.


哦,我会给你MVCC的另一个+1.我惊讶于SQL Server(或者,我称之为Microsoft Access,Enterprise Edition)只有脏读或在未提交的更新上选择阻止.完全没用.
推荐阅读
wangtao
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有