作为一名程序员,我曾在各种系统上工作过,有些使用 Oracle,有些使用 MySQL。我不断听到人们说 Oracle 更稳定、更健壮、更安全。是这样吗?

如果是这样,以什么方式以及为什么?

出于此问题的目的,请考虑一个中小型生产数据库,可能有 500,000 条记录左右。

有帮助吗?

解决方案

是的。Oracle 是企业级软件。

我不确定它是否真的比mysql更稳定,我没怎么使用mysql,但我不记得mysql在我身上崩溃过。我曾经遇到过 Oracle 崩溃的情况,但是当它发生时,它会为我提供比我可能想要的更多有关崩溃原因的信息,并且 Oracle 支持始终会提供帮助(收费)。

它非常非常强大,Oracle DB 在破坏您的数据之前几乎会做它能做的所有事情,我让 mysql 服务器在磁盘空间不足时做了非常奇怪的事情,Oracle 将停止所有事务,如果可以的话最终关闭'不写它需要的文件。我从来没有在oracle中丢失过数据,即使我做了一些愚蠢的事情,比如忘记where子句并更新每一行而不是单行,也很容易让数据库恢复到搞砸之前的状态。

不确定安全性,当然 Oracle 为您提供了很多连接数据库和身份验证的选项。它提供了很多关于哪些用户可以访问哪些内容等的选项。但与大多数事情一样,如果您想认真对待安全性,那么您需要专家来完成。如果甲骨文没有做好安全措施,他们肯定会损失更多。但是,就像所有事情一样,也有一些漏洞。

如果没有别的事,就考虑一下这个......当 Oracle 陷入困境时,他们的客户为每个 CPU 支付 4 万美元(如果他们是傻瓜并支付标价)许可证 + 每年的维护费。这给了他们非常强大的力量,以确保客户对产品感到满意。

对于小型数据库,我会在 mysql 之前认真推荐 Oracle XE。它具有 mysql(免费)的重要功能,安装非常简单,附带漂亮的 Web 界面和应用程序框架(Application Express),如果您的 DB 愿意在单个 cpu、1gb 内存和 4gb 数据上运行,那么 XE恕我直言,这是正确的方法。

Mysql 有它的用途,很多人已经证明你可以用它构建伟大的东西,但它在功能方面远远落后于 Oracle(以及 SQL Server 和 DB2)......但是,它也是免费的并且非常容易学习,这对许多人来说是最重要的功能。

其他提示

当磁盘空间不足时,我让 Oracle 创建了一个损坏的数据库。它很难调试,需要消耗大量资源,而且如果没有熟练的 DBA 的帮助,也很难使用它。Oracle 甚至替换了系统二进制文件(例如gcc)在 /usr/bin/ 中,当我在某个场合安装时。

另一方面,使用 PostgreSQL 的工作要愉快得多。如果您习惯使用开源 *nix 系统,它会提供可读的错误消息并以更易于理解的方式运行。设置复制非常容易,从而使您的数据相当安全。

一个500K记录的数据库大概可以在你的手机上运行。说真的,它是如此之小,以至于 Oracle XE 和 MySQL 都足以管理它。

  • 对于小型数据库(几百万条记录),Oracle 是大材小用
  • 您需要经验丰富的 DBA 来正确安装和管理 Oracle 系统
  • Oracle有较大的“基础开销”,即你需要一台更强大的机器来运行 Oracle
  • Oracle的“开箱即用”体验曾经很糟糕(我已经很多年没有安装oracle系统了;不知道它目前的行为如何),而 mysql 非常好

Oracle 是一个真正需要 DBA 知识的野兽。我同意那些说 500k 记录不算什么的说法。如果只是简单的数字/文本数据,那么 Oracle 的复杂性就不值得了。

另一方面,Oracle 对于 blob 非常高效。如果您的每条记录都是一个 100MB 的二进制文件,那么您需要大量资金才能在 Oracle 上运行它(我建议使用具有良好 SAN 的 3 节点 RAC 集群)。

我有一个项目,将数据(约 10M 行,1.2GB 数据)发送到三个不同的数据库:2 个 Oracle 和 1 个 MySQL。我在使用这两个系统时都没有遇到任何问题,也没有看到任何一方有任何重大优势。如果您所在的地方已经在其他项目中使用 Oracle,那么添加一个新数据库应该不会有太大问题,但如果您正在考虑设置一个新的数据库服务器并且没有任何内容已经到位,MySQL 将为您节省金钱。

Oracle Enterprise 假设有一个Enterprise 来支持它,即一个真正的Oracle DBA。新手(但有能力的)DBA 应该能够比 Oracle 更轻松地保护 MySQL,因为 Oracle 本质上更复杂。当然,Oracle 拥有超出 MySQL 目前功能的企业监控工具(据我所知),但 DBA 需要能够有效地使用它们。

正如您所描述的这样一个小型数据库可以由大多数东西来处理,所以我认为除非基础设施已经就位,否则 Oracle 是有保证的。两者都有复制、事务和热备份,因此两者都可以很好地使用。

答案取决于 完全 关于如何配置每个 DBMS。两者都能够多次处理 500,000 条记录。

Oracle 更强大。它的许多功能只能在大型企业或高性能环境中使用。它们主要是与扩展、复制和负载平衡有关的功能。

对于小型数据库,请考虑 SQLite。对于中小型,请查看 MySQL 或 PostgreSQL。对于最大的,请查看 MSSQL、Oracle、DB2 等。

编辑:阅读其他答案后,我会补充一点,如果您的数据确实是, 真的 至关重要的是,您需要一个复制的设置,并且您可能需要向大型数据库提供商之一寻求类似的东西。

如果你可以牺牲潜力(极其罕见)数据丢失并且希望提高性能,请考虑一些轻量级选项。

确实,Oracle 是一头野兽。

Oracle 确实被广泛认为是最安全的主要数据库。

问题在于 Oracle 的开发人员似乎没有掌握关键的安全概念。Oracle 是市场上最不安全的数据库服务器(根据独立安全研究人员的说法)

http://itic-corp.com/blog/2010/09/sql-server-most-secure-database-oracle-least-secure-database-since-2002/

根据这些研究人员的说法,MySQL 实际上相当安全。我对可用的工具了解不多。这项研究最有趣的是,那些将 Microsoft SQL Server 称为玩具的人,他们的数据却被 MSSQL 阻止的攻击者窃取,因为他们使用的是一个具有糟糕安全模型的野兽,而不是一个安全模型很差的“玩具”。安全的。

我将 Oracle/SQL Server/MySql 用于不同的应用程序和站点

在许多不同领域,没有任何数据库可以击败 Oracle,但它是最需要深厚管理知识的数据库。

如果您发现 Oracle 存在问题,即使是优秀的 DBA 人员也可能会花费很少的时间来解决它。

你可以使用MySql来处理500K或数百万条记录,它比其他数据库更轻,并且需要零管理工作,并且不会占用你大量的计算机资源,我一直在我的开发PC中使用它,并且从未遇到过任何问题严重的问题。

如果您不需要 Oracle 的高级功能,我会要求您使用 MySql 或 PostgreSQL。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top