在MSSQL数据库中有更多表会使它变慢吗?

时间:2011-08-16 06:07:55

标签: sql-server performance file-io

MSSQL数据库的性能是否会随着其中的更多表而下降?即使这些表包含很少甚至没有数据(也许只有100行),但是有数百个表,每天可能增加数千个?

正在使用的MSSQL的特定版本是2008标准版。

这里的逻辑是,每个在网站上注册的用户都会获得自己的一组表,用于存储与所有其他用户分开的数据。这将允许用户帐户在服务器之间移动并完全删除,如果需要留下很少甚至没有痕迹。另外,为用户提供更多的舒适感,因为他们知道他们的数据是完全分段的,因此更难以获得。

另一个问题是用户帐户数据存储在类似于垂直数据库的表中,因为有一个内容数据表,其中只有几个字段,但这些条目可以应用于任何类型的数据,从小帖子,日历条目,私人消息到用户编写的大型多页文章。单个内容平均可以在该表中添加10到15行。因此,在我想象的场景中,为所有用户设置一个大表似乎是非常差的表现。

只能通过为网站制作的API访问数据,该API会提取特定于用户的数据,并验证每次调用的数据访问权限。可以在将来制作任何类型的数据,这就是为什么用户具有内容表以及其他几个用于设置等的原因。每个用户大约有15个表,用于网站的各种管理方面。例如,api允许您以用户z的形式从用户y请求内容块x。它验证您的安全性并从表中提取块x的所有数据字段。

因此,不断增加的大量表格最终会使系统大幅减速吗?或者在单个表中拥有如此大量的数据会导致更大的减速?

1 个答案:

答案 0 :(得分:5)

不,不是任何相关的保证金。

但是,你的利益仍然是错误的 - 你失去了很多sql功能,或者必须为交叉用户查询制作大量的联盟。除非他有一个非常特殊的情况,否则我会解雇任何想出这样一个概念的人,你不会有99.99%的机密性。类似的说法就像你今天为Windows开发16位软件一样。

简而言之:

  • 不,没有明显的性能下降。

  • 仍然是一个糟糕的设计决定。