作为程序员,我曾在各种系统上工作过,有些使用 Oracle,有些使用 MySQL。我经常听到人们说 Oracle 更稳定、更健壮、更安全。是这样吗?
如果是这样,以什么方式,为什么?
出于这个问题的目的,考虑一个中小型生产数据库,可能有 500,000 条左右的记录。
作为程序员,我曾在各种系统上工作过,有些使用 Oracle,有些使用 MySQL。我经常听到人们说 Oracle 更稳定、更健壮、更安全。是这样吗?
如果是这样,以什么方式,为什么?
出于这个问题的目的,考虑一个中小型生产数据库,可能有 500,000 条左右的记录。
是的。Oracle 是企业级软件。
我不确定它是否真的比 mysql 更稳定,我没有太多使用 mysql,但我不记得我有 mysql 崩溃。我遇到过 oracle 崩溃,但是当它发生时,它给了我比我可能想要的更多关于它为什么崩溃的信息,并且 Oracle 支持总是在那里提供帮助(收费)。
它非常非常健壮,Oracle DB 在破坏您的数据之前几乎会尽其所能,我让 mysql 服务器在磁盘空间不足时会做一些非常奇怪的事情,Oracle 只会暂停所有事务,如果可以的话,最终会关闭t 写它需要的文件。我从来没有在 oracle 中丢失过数据,即使我做了一些愚蠢的事情,比如忘记 where 子句并更新每一行而不是单行,很容易让数据库恢复到搞砸之前的状态。
不确定安全性,当然 Oracle 为您提供了很多关于如何连接到数据库和进行身份验证的选项。它提供了很多关于哪些用户可以访问什么等的选项。但与大多数事情一样,如果你想认真对待安全性,那么你需要专家来做。如果甲骨文没有获得正确的安全性,他们肯定会失去更多。但是,与所有事物一样,也存在漏洞。
如果不出意外,请考虑一下...当 Oracle 搞砸时,他们的客户为每个 CPU 支付 4 万美元(如果他们是傻瓜并支付标价)许可证 + 年度维护费。这给了他们一个非常强大的密集度确保客户对产品感到满意。
对于小型数据库,我会在 mysql 之前认真推荐 Oracle XE。它具有 mysql(免费)的重要特性,它非常易于安装,带有漂亮的 Web 界面和应用程序框架(Application Express),如果您的 DB 愿意在单个 cpu、1gb ram 和 4gb 数据上运行,那么 XE恕我直言,这是要走的路。
Mysql 有它的用途,很多人已经证明你可以用它构建伟大的东西,但它在功能方面远远落后于 oracle(以及 SQL Server 和 DB2)......但是,它也是免费且非常容易学习的,这对很多人来说是最重要的功能。
当磁盘空间不足时,我让 Oracle 创建了一个损坏的数据库。如果没有熟练的 DBA 握着你的手,它很难调试、使用大量资源并且很难使用。当我在某个场合安装时,Oracle 甚至替换了 /usr/bin/ 中的系统二进制文件(例如 gcc)。
另一方面,与 PostgreSQL 一起工作要愉快得多。如果您习惯使用开源 *nix 系统,它会提供可读的错误消息并以更易于理解的方式运行。设置复制非常容易,从而使您的数据相当安全。
一个 500K 的记录数据库可能可以在您的手机上运行。说真的,它是如此之小,以至于 Oracle XE 和 MySQL 都足以管理它。
Oracle 是一头真正需要 DBA 知识的野兽。我同意那些说 50 万条记录不算什么的人的观点。如果它是简单的数字/文本数据,那么它不值得 Oracle 的复杂性。
另一方面,Oracle 在处理 blob 时非常高效。如果您的每条记录都是一个 100MB 的二进制文件,那么您需要一大笔钱才能在 Oracle 上运行它(我建议使用具有良好 SAN 的 3 节点 RAC 集群)。
我有一个项目将数据(约 1000 万行,1.2GB 数据)发送到三个不同的数据库,2 个 Oracle 和 1 个 MySQL。我在使用这两个系统时都没有遇到任何问题,也没有看到任何一方的任何主要优势。如果您所在的地方已经将 Oracle 用于其他项目,那么添加一个新数据库应该不是什么大问题,但是如果您正在考虑设置一个新的数据库服务器并且没有任何内容已经到位,MySQL 将为您省钱。
Oracle Enterprise 假定有一个 Enterprise 支持它,即真正的 Oracle DBA。一个新手(但有能力)的 DBA 应该能够比 Oracle 更容易地保护 MySQL,因为 Oracle 本质上更复杂。当然,Oracle 拥有 MySQL 当前功能之外的企业监控工具(据我所知),但 DBA 需要能够使用它们才能有效。
您所描述的这么小的数据库可以由大多数任何东西处理,所以我看不到甲骨文会得到保证,除非基础设施已经到位。两者都有复制、事务和热备份,因此两者都可以很好地发挥作用。
答案完全取决于您如何配置每个 DBMS。两者都能够多次处理 500,000 条记录。
甲骨文要强大得多。它的许多功能只能在更大的企业或高性能环境中寻找。它们主要是与扩展、复制和负载平衡有关的功能。
对于小型数据库,请考虑 SQLite。对于中小型,请查看 MySQL 或 PostgreSQL。对于最大的,请查看 MSSQL、Oracle、DB2 等。
编辑:在阅读了另一个答案后,我会补充一点,如果您的数据真的非常重要,您将需要一个复制的设置,并且您可能希望向大型数据库提供商之一寻求类似的东西。
如果您可以牺牲潜在的(极其罕见的)数据丢失并希望提高性能,请查看一些更轻量级的选项。
甲骨文确实是一头野兽。
Oracle 被广泛认为是最安全的主要数据库也是事实。
问题是甲骨文的开发人员似乎没有掌握关键的安全概念。Oracle 是市场上最不安全的数据库服务器(根据独立安全研究人员的说法)
根据这些研究人员的说法,MySQL 实际上是相当安全的。我对可用的工具了解不多。这项研究最有趣的是,那些将 Microsoft SQL 服务器称为玩具的人,他们的数据会被 MSSQL 阻止的攻击者窃取,因为他们使用的是具有糟糕安全模型的野兽,而不是“玩具”。安全的。
我将 Oracle/SQL Server/MySql 用于不同的应用程序和站点
在许多不同的领域,没有数据库能击败 Oracle,但它是最需要管理知识的数据库。
如果你发现了 oracle 的问题,即使是优秀的 DBA 人员,也可能会花几次时间来解决它。
您可以使用 MySql 处理 500K 或数百万条记录,它比其他数据库更轻巧,并且需要零管理工作,并且不会占用您大量的计算机资源,我一直在我的开发 PC 中使用它,从来没有遇到过严重的问题。
如果您不需要 Oracle 的高级功能,我会要求您使用 MySql 或 PostgreSQL。