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

  • 您选择数据库时使用哪些约束/标准?
  • 您使用的各种数据库满足这些约束/标准的程度如何?
  • 数据库有哪些特殊功能?
  • 您愿意向其他人推荐哪些数据库?

ETC...

有帮助吗?

解决方案

我首先会考虑系统对数据访问、数据安全性、可扩展性、性能、断开连接的场景、数据转换、数据大小的要求。

另一方面,还要考虑开发者、运营者、平台管理员的经验和背景。

您还应该考虑编程语言、操作系统、内存占用、网络带宽、硬件方面的限制。

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

经过所有这些考虑之后,您最终应该只有几个选项,并且选择应该更容易。

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

我当然认为你的说法是正确的,考虑到有大量的替代方案,这不是一个明显的选择,但这是我认为你可以将它们缩小到对你的项目真正可行的方案的唯一方法。

其他提示

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

  • 维护:如何安装更新/修补程序?
  • 交易控制:如何实施
  • 是否支持存储过程?
  • 可以在存储过程中使用异常处理吗?
  • 成本
  • 作为一个好处:可以在存储过程上使用递归吗?(例如。在 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 之类的东西,再加上对保留字差异等问题的一点认识,这几乎是完全免费的。

当然,最引人注目的因素是您或您的团队的专业知识……或者您将来可能雇用的资源库。大多数时候我倾向于顺其自然,在 LAMP 团队中使用 MySQL,在 MS 团队中使用 SQL Server,因为即使在高负载环境中,这些产品也能够完成所有必要的工作。

与学习如何很好地使用它的痛苦相比,任何其他数据库的好处都是微不足道的。在我看来,唯一的例外是在高需求环境中:

A。明显的选择已经尝试过但失败了

b.扩展的好处可以使边际收益成倍增加,以至于值得付出意想不到的代价。

我认为需要聘请至少两名(最好是三名)长期熟悉新数据库的优秀 DBA。

首先,我会尝试雇用他们来解决失败的技术,因为更有可能是技术的使用方式而不是技术本身造成了问题。

现有的答案都很棒。值得记住的是,Oracle 现在有一个 10g 数据库的 XE 版本,该版本免费提供,并附带 Application Express(一个出色的基于 Web 的开发环境)。

它的容量有限,4GB 硬盘,1GB 内存,并且仅使用一个 CPU。这足以运行较小的系统,并且可以在以后根据需要轻松升级。Oracle 可能是最难学的之一,但也是简历中最好的之一:-)

我认为 Microsoft 的 SQLServer 也有一个“入门”类型的数据库。不要低估商业产品 - 如果您要将公司押在数据库技术上,我个人宁愿使用 Oracle 或 Microsoft 的产品。这并不是说开源有什么问题。

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

  • Linux,Web 托管 - MySQL(也许是 PostreSQL)
  • 主流中小企业 - MS SQL
  • Big Iron(银行等)- Oracle

考虑除这三个之外的任何事情都是自慰 - 任何其他数据库都会成为关于利基产品的讨论,以解决您可能尚未遇到的特定问题。如果您选择上述三项以外的任何一项,您将 -

  1. 努力寻找人员参与该项目或维持数据库运行
  2. 在没有学术讨论的情况下努力激发你的决定
  3. 几年后,有人会诅咒你、你的祖先和你的血统——无论如何都会取代你的选择。

利基数据库并不是架构取得进步的地方 - 它是中间件、消息传递、云服务等技术,您可以(并且应该)在这些技术中冒险寻找好的产品。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top