我有一个伙伴,经营着一个用于列出待售汽车的人的网络应用程序。有几千个客户使用它,每个客户在数据库中有数百个,有时甚至数千行(有些客户已经使用了5年,每月有数百辆汽车销售,每销售10秒(评论,消息,消息,消息, ETC))。他已经在一台具有20GB或RAM的物理服务器的SQL Server数据库中运行此系统,并且始终没有问题。这是某种奇迹吗?

就像大多数程序员一样,我不是DBA,只要多亏了ORMS等。我所看的任何地方,人们都在谈论需要碎片或为Web应用程序的大用户提供单独的数据库服务器。为什么是这样?拥有大量或排的大db真的很低吗?我应该打算使用卡桑德拉(Cassandra)之类的东西,还是可以依靠Postgres来缩放?

有帮助吗?

解决方案

我个人不认为您所描述的是数据库中的很大。服务器(RAM的20次演出?;))听起来不错。更多的是使用和设计。如果数据库是索引且设计良好的,那么它可以在当前硬件上增长很多。

在进行任何类型的切换之前,如果担心性能问题,我简单地研究归档无用的数据并优化查询。

其他提示

碎片和单独的DB服务器的原因是,在某个时候,使用多个机器比一台昂贵的机器便宜。硬件价格不会随着性能而线性地缩放,一旦您达到一定的一点,获得两倍的机器的价格便宜得多,即可快速获得两倍的机器。

您应该在SQL Server,Oracle或任何现代关系或非关系数据库中没有问题。我管理了具有100千万记录和数据库的数据库。

通常,您将组件跨不同的服务器拆分,因此您可以更轻松地管理时间,弹性和性能。

当然,可以拥有一台怪物机器可以做到这一点,但是如果主板死亡,或者您的数据中心不可用,则可能需要另一台怪物机器。

通过将网站或应用程序拆分,在不同的服务器中,更便宜的机器和更多的机器更容易。因此,您可以建立弹性,并且没有对硬件冲突有类似需求的组件。

考虑服务器的恢复时间和恢复计划也很重要。
当您的机器死亡时会发生什么,您可以在商定的时光中替换它吗?您可以在那个时候从备份还原吗?

SQL Server或其他Enterprise类数据库对10或100GB数据库不应有任何问题,只要它们设计不太糟糕即可。 (我们有几台具有这种能力/使用的机器,这些机器根本不挣扎。)。

在我看来,没什么。在数据库大小超过10 GB的多个表上有数千万的行并未引起MS SQL Server的问题。当然,对于如此之多的数据来说,它不是太快了,但是否则它可以正常工作。

要回答这个问题,太大太大了,确实会导致问题。当它开始引起问题时,取决于表结构和您的性能需求。

数据库在存储和检索关系数据(即结构化并引用其他数据的数据)方面非常有效 - 这就是他们设计的。老实说,有99%的人对钥匙价值商店和卡桑德拉(Cassandra)以及Whate Whats不知道他们在做什么。数据库服务器对于存储大量数据就可以了,尤其是如果您愿意进行一些工作以正确调整它。

也就是说,Cassandra等人有用例。 al。 - 如果您主要具有非结构化的密钥/价值数据或不需要一致性或想要造成冗余的碎片,则可能值得研究。

除非您是一个非常受欢迎的网站,否则您可能可以通过不错的数据库服务器来井井有条 - 不要切换直到您确定 为什么 您需要切换。切换很好,只需确保您正在切换,因为它可以更好地满足您的需求,并且 不是 因为这是“很酷的网络规模的事情”

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