我应该担心设置表变得庞大吗?

时间:2013-10-25 06:42:42

标签: asp.net sql-server database

我在SQL Server 2012中有一个非常胖的设置表,现在有超过100列。顾名思义,此表记录了我们网站中的各种设置值。它曾经有少于50列,但现在它的大小翻了一番。

我将设置值存储到数据库中的原因是因为用户需要能够通过UI更改这些设置。

我是否真的担心这张桌子会越来越大?或者我将不得不找到一些其他方法来存储设置数据,例如保存到文件中,或许?有什么好建议吗?

由于

3 个答案:

答案 0 :(得分:1)

我们正在使用JSON来存储用户设置。该表只获得两列 - 用户ID和设置字符串。这个字符串很长,但并不重要。您还可以使用XML来存储此数据。

这是用手指修改数据的更糟糕的解决方案,但客户端或ASP.NET服务器从数据库和进程获取的速度更快。

答案 1 :(得分:1)

首先,您不需要在数据库中存储设置,以便用户在运行时更新它们。您只需将它们存储在每当用户进行更改时都会更新的设置文件中。这是一个xml配置文件,效果很好。

但是,如果应用程序是基于网络的,并且您希望设置在设备之间跟随用户,那么将它放在数据库中更有意义。

第二,是的...... 100列是巨大的。您可以考虑将每个设置存储在单独的行中,而不是将每个设置存储在单独的行中,然后使用公共行格式,即ID,SettingName,SettingValue,(可能)DefaultValue。然后你的桌子可以随意增长。

答案 2 :(得分:1)

我想你在关注大桌上的表现?

一个问题是这个表中有多少行? 100列10000行不是真正的问题。超过1000万行的100列是一个略有不同的球赛。不是更好,只是不同。

同样的注意事项适用于小型和大型表:  你正确编制索引吗?  你的IO好吗?  你的空间好吗?  你在高效地查询吗?

对此没有正确答案,这取决于为什么你有大量的列数以及它是否达到你的整体表现。 我们使用>运行1000个表150列没有问题,即使它们之间有数百万行,我也不能抱怨性能。 这是相对去标准化的数据,因此有很多文本。