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

Def*_*all 0 sql-server performance file-io

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

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

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

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

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

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

小智 5

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

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

简而言之:

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

  • 还是一个糟糕的设计决定.