什么是数据库的大?

时间:2010-09-10 22:34:05

标签: database scalability database-performance

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

就像大多数程序员一样,我不是DBA而且只是过得好,感谢ORM等等。无论我看到什么,人们都在谈论需要为Web应用程序的大用户进行分片或获取单独的数据库服务器。为什么是这样?拥有大量或多行的大型DB是否真的效率低下?我是否应该计划使用Cassandra或其他东西,或者我可以依靠与Postgres一起扩展吗?

6 个答案:

答案 0 :(得分:9)

我个人认为你所描述的并不是那么庞大的数据库。服务器(20演出ram?;)听起来不错。它更多的是关于使用和设计。如果数据库已编制索引并且设计得很好,那么它在当前硬件上可以增长很多,而且要大得多。

在进行任何类型的切换之前,如果担心性能问题,我只会查看归档无用数据和优化查询。

答案 1 :(得分:5)

分片和单独的数据库服务器的原因是,在某些时候,使用比一个昂贵的机器便宜的机器会更便宜。硬件价格不随着性能线性扩展,一旦达到某一点,获得两倍于机器速度的机器要便宜两倍便宜得多。

答案 2 :(得分:3)

在SQL Server,Oracle或任何现代关系数据库或非关系数据库中应该没有问题。我管理的数据库包含数百万条记录和数TB的数据。

答案 3 :(得分:3)

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

当然有可能拥有一台可以完成所有工作的怪物机器,但是如果您的主板死机或您的数据中心不可用,您可能需要另外一台怪物机器。

通过拆分网站或应用程序,在不同的服务器之间,更容易获得更便宜的机器,以及更多的机器。 因此,您可以构建弹性,而不是具有对硬件冲突具有类似要求的组件。

考虑服务器和恢复计划的恢复时间也很重要 当您的机器死亡时会发生什么,您能否在约定的时间内更换它?你能在那个时候从备份中恢复吗?

SQL Server或其他企业级数据库不应该对10或100GB数据库有任何问题,只要它们的设计不是太糟糕。 (我们有一些具有这种容量/用途的机器根本没有挣扎。)。

答案 4 :(得分:2)

在我看来,这没什么。在数据库大小超过10 GB的多个表上拥有数千万行并未导致MS SQL Server出现问题。当然,对于那么多数据来说它并不是太快,但除此之外它的工作正常。

要回答这个问题,太大太大会造成问题。当它开始引起问题时,取决于表格结构和你的性能要求。

答案 5 :(得分:2)

数据库在存储和检索关系数据(即结构化数据并引用其他数据)方面非常有效 - 这就是他们设计的目的。老实说,99%的人涌入了关键值商店和Cassandra,并且不知道他们在做什么。数据库服务器可以很好地存储大量数据,特别是如果你愿意做一些工作来正确调整它。

也就是说,Cassandra等有用例。人。 - 如果您拥有大多数非结构化的键/值数据或者不需要一致性或者想要冗余分片,那么可能值得研究。

除非你是一个非常受欢迎的网站,否则你可能会得到一个不错的数据库服务器 - 在你确定为什么你需要切换之前不要切换。切换很好,只是确保你切换,因为它更好地满足你的需求,而,因为它是“很酷的网络规模的事情”