我不得不开始构建数据库项目的架构,但我真的不知道引擎之间的差异。
任何人都可以解释这三种引擎的优点和缺点是什么?我们必须选择其中一个,我唯一知道的就是:
有人可以清除他们之间的其他差异吗?这是一个中/大(我们想约100到200个表)项目,预算很低,你会选择什么?还有更高的预算?
答案 0 :(得分:12)
几年前我不得不写一个翻译引擎;你喂它一套sql,它转换为当前连接的引擎的方言。我的引擎适用于Postgres(AKA PostgreSql),Ingres,DB2,Informix,Sybase和Oracle - 哦和ANTS。坦率地说,Oracle是我最不喜欢的(下面有更多内容)...不幸的是,mySql和SQL Server不在列表中(当时它们都不被认为是严重的RDBMS - 但时间确实有所改变)。
不考虑引擎的质量或性能 - 以及制作和恢复备份的便利性 - 以下是主要区别:
对所有转换数据不感兴趣,这里是一个数据类型的示例,lvarchar:
oracle = varchar(%x)sybase = text db2 =“long varchar”informix = lvarchar postgres = varchar(%x)ants = varchar(%x)ingres = varchar(%x,%y)
在我看来,最重要的是空处理; Oracle SILENTLY将空白输入字符串转换为空值。 ......在某个地方,很久以前,我读过一篇关于“The Seventeen of Null”或其他一些文章的文章。真正的一点是,空值非常有价值,空字符串和空字符串之间的区别是有用而且不平凡!我认为甲骨文在这个问题上犯了一个大错没有其他人有这种行为(我见过)。
我的第二个最不喜欢的是ANTS,因为与其他所有人一样,他们强制执行完全语法的愚蠢规则,绝对没有其他人这样做,虽然他们可能是唯一提供完全遵守标准的DB公司,但他们也是皇室痛苦的屁股写代码。
我最喜欢的是Postgres;它在_real_world_情况下非常快,有很大的支持,并且是开源/免费的。
答案 1 :(得分:4)
不同的SQL实现之间的差异很大,至少在幕后。这个板子不足以统计它们。
如果你不得不问,你还必须问问自己,你是否能够就此事做出有效和有根据的决定。
A comparison von MYSQL and Postgres can be found here
请注意,Oracle还提供Express (XE) edition功能减少,但可以免费使用。 此外,如果你开始时没什么知识,你将不得不自学,我会选择任何一个,并开始学习使用它。
答案 2 :(得分: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了吗? SYBASE? Teradata的? MS SQL?
答案 3 :(得分:2)
我认为对于低预算的情况,Oracle是不可能的。 100-200个表并不大,通常架构中的表数量不是比例量度。数据集和吞吐量是。
您可以查看 http://www.mysqlperformanceblog.com/(及其精湛的书籍),了解MySQL如何处理大量部署。
现在一般来说,大多数RDBMS几乎可以在非常严肃的应用程序中执行任何操作。