gpt4 book ai didi

mysql - postgreSQL mysql oracle 差异

转载 作者:可可西里 更新时间:2023-11-01 06:39:13 25 4
gpt4 key购买 nike

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

谁能解释一下这三种引擎各自的优缺点?我们必须从中选择一个,而我对它们的唯一了解是:

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

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

最佳答案

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

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

  • 数据类型
  • 限制
  • 残疾人
  • 保留字
  • 空语义(见下文)
  • 引用语义(单引号 '、双引号 "或两者之一)
  • 语句完成语义
  • 函数语义
  • 日期处理(包括常量关键字,如“now”和输入/输出函数格式)
  • 是否允许行内评论
  • 最大属性长度
  • 最大属性数
  • 连接语义/安全范例。

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

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

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

我第二不喜欢的是 ANTS,因为与其他所有公司不同,他们强制执行愚蠢的完美语法规则,绝对没有其他人这样做,虽然他们可能是唯一一家提供完美遵守标准的数据库公司,但他们也是为之编写代码实在是太痛苦了。

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

关于mysql - postgreSQL mysql oracle 差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/216601/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com