【问题标题】:Differences between MySQL and Oracle DB [closed]MySQL和Oracle DB之间的差异[关闭]
【发布时间】:2011-06-24 15:43:15
【问题描述】:

MySQL 和 Oracle 11g 之间有什么区别 - 特性和性能?我希望能够根据情况在两者之间做出明智的选择。

注意:测试链接显然会有所帮助。

【问题讨论】:

  • @BoltClock:已编辑。 11克。

标签: mysql oracle comparison performance


【解决方案1】:

StackOverflow 非常受欢迎的答案:

Look at Wikipedia! :)

另一个查找 SQL 功能比较的有用地方:

Comparison of different SQL implementations 来自 Troels。

希望你能在这里找到答案...

【讨论】:

    【解决方案2】:

    MySQL 仍然缺乏的东西(Oracle 有)

    • 可延迟的约束
    • 检查约束
    • 递归查询
    • 表函数
    • 常用表表达式
    • 窗口函数
    • 基于函数的索引
    • 部分索引
    • 没有 MINUS(或 INTERSECT)运算符
    • 非常简单的子选择查询优化器
    • 很多非标准语法(|| 是逻辑或!)
    • 没有闪回

    【讨论】:

    • 是的,我特别讨厌 MySQL 的非标准语法:|
    • 更多:表/索引集群、单表哈希集群、作为单独对象的序列
    • 再一:非select语句的执行计划
    【解决方案3】:

    显然,MySQL 可以tell the difference between an empty VARCHAR and a NULL value :-)

    仅此一项就足以让我避开 Oracle。

    【讨论】:

    • 我一直想知道为什么人们需要这种区别。没有“空”整数或“空”日期或“空”十进制值之类的东西。那么为什么字符串需要这个?我在很多地方的很多应用程序中都看到了类似if (string == null || string.length() == 0) 的东西。因此,显然在前端,空字符串和空字符串通常被平等对待。我发现更烦人的是,这种行为在 Oracle 内部并不一致。有时它不会将空字符串视为 null。
    • 确实有很大的不同。 NULL 值的意义在于表示未知或不适用。没有中间名的人和中间名未知的人是有区别的。这些事情对于想要成为 DBA 的人来说可能无关紧要,但对于那些了解这些问题的人来说却非常重要 :-)
    • 那么空字符串对于整数值的等价物是什么? (请不要说它是零)
    • 嗯,没有空字符串等价于整数。 Oracle 仅对字符数据有此限制。以整数为例,考虑某人的年龄。 NULL 表示您不知道,任何其他值表示您知道并且设置为该值。如果我们将 Oracle 的限制扩展到整数,它确实无法区分 0 和 NULL 之间的区别,但幸运的是,Oracle 并没有那么糟糕 :-)
    • 这是一个非常古老的辩论。早在当前标准之前就设置的原始 Oracle 方法对于基于表单的应用程序非常有意义。如果有人在表单字段中没有输入任何内容,将其设置为 NULL 比使用大量空字符串更有意义,这会使您的查询更加复杂。我已经阅读了存在 VARCHAR 和 VARCHAR2 类型的原因是因为 VARCHAR2 保证保持这种行为,而 VARCHAR 将来可能会更改为当前的标准行为。
    猜你喜欢
    • 2010-09-05
    • 2012-11-20
    • 1970-01-01
    • 2014-11-03
    • 1970-01-01
    • 1970-01-01
    • 2010-10-31
    • 2014-01-23
    相关资源
    最近更新 更多