如何选择一个SQL数据库?

时间:2020-03-05 18:43:43  来源:igfitidea点击:

我们生活在数据库的黄金时代,拥有众多高质量的商业和免费数据库。这很棒,但是不利的一面是对于需要下一个项目数据库的人来说,没有一个简单的明显选择。

  • 我们用于选择数据库的约束/条件是什么?
  • 我们使用的各种数据库如何满足这些约束/条件?
  • 数据库具有哪些特殊功能?
  • 我们觉得可以推荐哪些数据库?

等等...

解决方案

回答

我首先考虑一下对数据访问,数据安全性,可伸缩性,性能,脱机方案,数据转换,数据大小的系统要求是什么。

另一方面,还要考虑开发人员,操作员,平台管理员的经验和背景。

我们还应该考虑对编程语言,操作系统,内存占用量,网络带宽,硬件有哪些限制。

最后但并非最不重要的一点是,我们必须考虑业务问题,例如许可预算,支持,运营。

经过所有这些考虑,我们应该只剩下几个选择,选择起来应该更容易。

换句话说,选择最适合组织和项目的约束和需求的技术。

我当然认为我们是对的,鉴于存在大量的替代方案,这不是一个显而易见的选择,但这是我认为可以将它们缩小到对项目切实可行的方案的唯一方法。

回答

当然,最引人注目的因素是我们或者团队的专业知识……或者我们将来可能雇用的资源库。在大多数情况下,我倾向于使用LAMP团队中的MySQL和MS团队中的SQL Server,因为这两种产品甚至都可以在高负载环境下完成所有必要的工作。

与学习如何良好使用数据库的痛苦相比,任何其他数据库的好处将是微不足道的。我认为,唯一的例外是在需求旺盛的环境中:

一种。显而易见的选择已经尝试并且失败了

b。扩展的好处将边际收益增加到一定程度,以至于值得使用意外的东西。

我认为有必要聘请至少两个,最好是三个长期熟悉新数据库的优秀DBA。

首先,我会尝试聘用失败的技术人员,因为与造成问题的技术本身相比,它更可能是其使用方式。

回答

我的选择标准(主要是以编程为中心):

  • 维护:如何安装更新/修补程序?
  • 事务控制:如何实现
  • 是否支持存储过程?
  • 我们可以在存储过程中使用异常处理吗?
  • 费用表
  • 好处:我们可以在存储过程上使用递归吗? (例如,在SQL Server 2000中,递归在传递32个IIRC之后停止)

回答

对于公司环境中的大多数人而言,选择取决于"我们拥有的"。

由于我们似乎很幸运,可以选择,因此我将快速解决所有问题,并可能在最后提出一些建议。

最大的标准可能是成本。我们想要/准备为DBMS平台付费吗?如果不是这样,那么Oracle,MS SQL Server,Sybase和其他公司可能都淘汰了,尽管如果我们不构建商业应用程序,则可能会有一些回旋的余地。另外,平台可以在硬件上运行软件吗?

其他需要考虑的维度可能包括预期的并发连接数,事务性与大多数情况下的读取,大小,可用性以及其他许多因素。

在我愤世嫉俗的世界观中,主要应避免使用"特殊功能",这些功能旨在将我们锁定在平台中。因此,像Oracle的PL / SQL这样的功能虽然功能强大(并且可能意味着需要更多的许可成本,但需要额外的CPU功能)却无法移植。我想,如果我们预期卷数量非常大,那么分区可能会有用。

我曾经考虑过使用Oracle,MS SQL Server,MySQL,PostreSQL,SQLite和Sybase。我很乐意推荐除Sybase之外的所有公司,这些年来我对此有些担忧(我很容易错了,但我个人认为这笔钱可能会花在其他地方更好),但并非所有都用于同一应用程序。

理想情况下,我喜欢温暖的感觉,因为我可以轻松移植,所以我使用的数据库平台并不重要。在数据和业务逻辑之间具有良好的抽象层,我应该能够在本地开发(例如出色的SQLite),并在诸如Postgres上轻松实现。加上Rails的ActiveRecord之类的东西,再加上对保留字中的差异之类的东西的一点了解,这几乎是完全免费的。

回答

现有的答案很好。值得记住的是,Oracle现在拥有其10g数据库的XE版本,该版本是免费的,并随附有基于Web的出色开发环境Application Express。

它是有限的4GB HD,1GB Ram,并且仅使用一个CPU。不过,这足以运行较小的系统,并且如有必要,可以在以后轻松升级。 Oracle可能是最难学的之一,但也是简历中最好的之一:-)

我认为Microsoft的SQLServer也有一个"入门"类型的数据库。如果我们要将公司押在数据库技术上,请不要打折商业产品,我宁愿亲自使用Oracle或者Microsoft的产品。并不是说开源有什么问题。

花一些时间评估它们:-)

回答

  • Linux,网络托管-MySQL(也许是PostreSQL)
  • 主流中小企业-MS SQL
  • 大铁(银行等)-Oracle

除了这三个问题以外,其他任何数据库都将成为自慰对象,这将成为有关利基产品的讨论,以解决我们可能尚未遇到的特定问题。如果我们选择上述三个以外的任何其他选项,我们将-

  • 努力寻找可以从事项目工作或者保持数据库运行的人员
  • 不经过学术讨论就努力激励决定
  • 几年后,有人会诅咒我们,祖先和血统-并且无论如何都会取代选择。

利基数据库并不是在架构方面取得重大进展的地方,而是诸如中间件,消息传递,云服务等技术,我们可以负担得起(并且应该)动手找到优质的产品。