2009-03-04 35 views
7

我知道在SQL Server中,数据库中“对象”的最大数量有点超过20亿。对象包含表,视图,存储过程,索引等等。我一点也不担心超过20亿个物体。但是,我想知道的是,SQL Server是否因拥有大量表而受到性能影响。您添加的每个表是否都有性能问题,或者基本没有差别(假设数据量不变)。任何人都有使用数千个表的数据库的经验吗?我也想知道MySQL的相同之处。SQL Server和MySQL中可工作表的最大数量

回答

8

假设数据量不变,没有区别。

大概在因为像减少维护窗口的事情(更小的索引重建)实际上增益,已只读等

性能是通过查询和索引确定文件组的能力(在最基本的层面上):不是数量的对象

1

我怀疑SQL Server将有成千上万的表处理性能问题,但我肯定会。

虽然我已经在数据库中使用了SQL Server中的数百个表,但没有任何问题。

+0

不得不读几次你的第一句话。我明白你来自哪里,但这些基本上都是大量的具有相同结构的表格,而不是单独管理的。 – Kibbee 2009-03-04 15:21:38

+1

如果这些表以编程方式生成,那么您作为开发人员也可以通过编程方式处理它们。没有性能问题(至少不是职业上的) – Davos 2014-10-22 06:12:50

0

通过使用具有许多列的表而不是分解相关表(即使是具有一对一关系的表),SQl服务器也可能遭受更大的性能影响。此外,当您要输入的数据超出您可以为列存储的字节数时,宽表可能会出现问题。您可以创建一个有可能存储10000个字节的表,但您仍然只能存储8060个字节。

+0

这是有用的信息,但根本不回答被问到的问题。 – Kibbee 2009-03-04 15:34:39

4

就我所拥有的具有200万个表的数据库的最大表数而言。没有性能影响。我的桌子各有15MB左右。

0

根据我的经验,我不认为表格的数量会影响性能。但是,你应该能够证明你为什么在数据库中有这么多的表。这是因为在数据库端拥有如此多的表格也会影响服务器端开发人员的工作。

IMO如果你根据功能划分表格,那么你不能使开发人员的生活变得轻松,但也会在你的应用程序中获得性能增益,因为你已经从你想要的地方获得了所需数据的固定表。

说你需要存储销售,购买,收据和付款的详细信息。它们都具有相同的表结构,而不是将它们存储在单个表中,您可以将它们全部单独存储在单独的表中。有了这些,您就可以在单一表格中获得销售的所有细节,同样也可以购买。因此它可以帮助提高应用程序数据库层的响应时间,该应用程序是所有Web层中最慢的组件之一。当然,我们通过SQL quires来关注数据库的性能,但这样的结构也可以间接地帮助你提高数据库的性能。