【问题标题】:postgreSQL mysql oracle differencespostgreSQL mysql oracle 的区别
【发布时间】:2010-09-18 00:17:53
【问题描述】:

我不得不开始为一个数据库项目构建架构,但我真的不知道引擎之间的区别。

谁能解释这三种引擎各自的优缺点?我们必须从中选择一个,而我真正知道的关于它们的唯一一件事是:

  • Mysql 和 Postgres:
    • 是免费的,但不如 oracle 好
    • Mysql 作为安全问题(这是真的吗?)
  • 甲骨文:
    • 世界上最好的数据库引擎
    • 昂贵

有人可以清除它们之间的其他差异吗?这是一个预算较低的中/大型(我们正在考虑大约 100 到 200 张桌子)项目,您会选择什么?并且预算更高?

【问题讨论】:

    标签: mysql oracle postgresql


    【解决方案1】:

    几年前我不得不写一个翻译引擎;你给它输入一组 sql,它会翻译成当前连接的引擎的方言。我的引擎适用于 Postgres (AKA PostgreSql)、Ingres、DB2、Informix、Sybase 和 Oracle - 哦,还有 ANTS。坦率地说,Oracle 是我最不喜欢的(更多内容见下文)...不幸的是,mySql 和 SQL Server 不在列表中(当时两者都被认为是不重要的 RDBMS - 但时代确实会发生变化)。

    不考虑引擎的质量或性能 - 以及制作和恢复备份的难易程度 - 以下是主要的区别:

    • 数据类型
    • 限制
    • 无效
    • 保留字
    • 空语义(见下文)
    • 引号语义(单引号 '、双引号 " 或两者之一)
    • 语句完成语义
    • 函数语义
    • 日期处理(包括“现在”等常量关键字和输入/输出函数格式)
    • 是否允许内联 cmets
    • 最大属性长度
    • 最大属性数
    • 连接语义/安全范式。

    不要让您对所有转换数据感到厌烦,这里有一个数据类型 lvarchar 的示例:

    oracle=varchar(%x) sybase=text db2="long varchar" informix=lvarchar postgres=varchar(%x) ants=varchar(%x) ingres=varchar(%x,%y)

    在我看来,最重要的是 null 处理; Oracle 静默地将空白输入字符串转换为空值。 ...很久以前的某个地方,我读到有人写过一篇关于“Null 的十七个含义”之类的文章,真正的重点是 null 非常有价值,并且 null 字符串和空字符串之间的区别是有用且不平凡!我认为甲骨文在这一点上犯了一个巨大的错误。其他人都没有这种行为(我见过)。

    我最不喜欢的第二个是 ANTS,因为与所有其他人不同,他们执行了绝对没有其他人做的完美语法的愚蠢规则,虽然他们可能是唯一一家提供完美遵守标准的 DB 公司,但他们也是为之编写代码感到非常痛苦。

    我最喜欢的是 Postgres;它在 _real_world_ 情况下非常快,有很好的支持,并且是开源/免费的。

    【讨论】:

    • Oracle 建议使用 varchar2 而不是 varchar。
    • 感谢您的更新,马克。我将确保将其传播回引擎 - 并花点时间寻找其他更新。逆转录
    【解决方案2】:

    不同 SQL 实现之间的差异很大,至少在底层是这样。这些板子不足以将它们全部计算在内。

    如果你必须问,你也必须问自己,你是否能够就此事做出有效和有根据的决定。

    A comparison von MYSQL and Postgres can be found here

    请注意,Oracle 还提供Express (XE) edition,功能有所减少,但可以免费使用。 另外,如果你一开始学的知识少,那你就得自己学了,我随便选一个,用它开始学习。

    【讨论】:

    • 我给沃伦留下了同样的评论,我是一名学生,这是针对课堂上的一个项目,我们一直在努力研究,但我们不知道什么会更好供使用。大学为我们提供了 oracle 的密钥。 Tks 链接和参考
    • 如果你想在 Prod 中使用 XE,你只需要它。如果您只是尝试一下...下载企业版并了解所有功能。
    【解决方案3】:

    查看维基百科上的比较表:http://en.wikipedia.org/wiki/Comparison_of_object-relational_database_management_systems && http://en.wikipedia.org/wiki/Comparison_of_relational_database_management_systems

    Oracle 可能是最好的,也可能不是。它很贵,但这并不意味着最好。

    您看过 DB2 吗?赛贝斯?太数据? MS SQL?

    【讨论】:

    • ty,我是一名学生,这是一个大学项目,db 老师只是在谈论那些,我知道 ms sql 但不知道其他人。 Tks 链接 :)
    • HTH :) .. 我会坚持使用学校可以访问的任何 rdbms:无论是 MS SQL、ORacle、MySQL 还是 PostgreSQL(他们不太可能拥有 DB2,但可能)
    • 我们可以选择任何免费或预言机
    • 良好的数据库让您可以免费下载并随心所欲地工作,直到您投入生产。 MS Sql Server 不这样做。据我所知,Sybase 和 DB2 都没有。
    • @Mark Brady:MS SQL Express 是免费的,适用于高达 4GB 的数据集。如果这只是一个学校项目,可能就是你所需要的。
    【解决方案4】:

    我认为对于低预算方案,Oracle 是不可能的。 100-200 个表并不大,通常模式中的表数量不是一个规模衡量标准。数据集和吞吐量是。

    您可以查看http://www.mysqlperformanceblog.com/(以及他们的优秀书籍),了解 MySQL 如何处理大型部署。

    通常,现在大多数 RDBMS 几乎可以完成您在非常严肃的应用程序中需要的任何事情。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-10-07
      • 2014-04-05
      • 1970-01-01
      • 2022-01-10
      • 2014-04-16
      • 2013-10-09
      相关资源
      最近更新 更多