多个MDF文件 VS 单一数据库(SQL Server)

4
我正在开发一个Web2项目,希望用户每天能够产生数千条数据。为了处理这么大的数据量,我设计了一个数据库,包含一个 .mdf 和一个 .ldf 文件作为小型数据库以及一个主数据库,用于保存和查询用户账户和数据库文件地址。
我已经为这个计划工作了几个月,现在可以轻松地管理它。我想知道处理大量独立数据的好方法是什么?您认为打开许多小的 .mdf 文件连接还是只需要一个巨大的数据库性能更好?
之后,我将把 mdf 数据库分成几台计算机来管理。它们都使用 C# 和 Linq (.Net4) 进行处理。
我建立了这个计划,效果很好。例如:打开每个小的 .mdf 文件需要 1 秒钟的时间,并且在 0.0 秒的时间内对其进行查询。这样可以为每个连接制定静态时间。但是在单个拥有 50 行数据的数据库中,系统必须在大约 200,000 行数据中找到它们,并且使用简单的主键选择查询需要花费约 4-5 秒的时间。
例如,我想要获取位于 500,000 行之间的一行,以绑定页面内容,并选择在 2milmions 行之间的 50 条评论,并获取每个评论的投票数、每日、每周、每月和总计的浏览次数,以及点赞数、评论回复等数据,这些查询都比小的从数据库查询花费更长的时间。
我认为一个良好的设计和过程对系统来说应该很容易。唯一的问题是小型从数据库使用 SQL server 文件会占用更多的物理空间,大约每个数据库需要 3MB 的大小。
3个回答

3

没有必要将本应存在于单个数据库中的内容分割为多个独立部分。

已经有机制可以将单个逻辑数据库分区到多个文件中:文件和文件组架构以及分区大型表(每天几千行并不算大型表)。


谢谢你的帮助。我已经在这个应用程序上工作过了。所以根据你的意见,最好重新开始,对吗? - FARHAD AFSAR

1
"

每天数千行数据对于 Sql Server 来说应该是小菜一碟。

首先,我赞同 Alex K 的回答。文件组很可能能够满足你的需求。分区表可能过于复杂,而且只适用于企业版,不适合轻量级用户。

我要补充的是:

"

http://www.google.com/#q=glenn+berry+dmv&bav=on.2,or.r_gc.r_pw.&fp=73d2ceaabb6b01bf&hl=en

您需要调整索引。在好、更好和最好的类别中,Glenn Berry的DMV查询是“更好的”。这些查询将帮助您解决大多数问题。在“最佳”类别中,需要仔细查看每个存储过程,查看执行计划并尝试不同的方法。这就是一个优秀的数据库管理员能够提供的。

以下是一些有关文件设置考虑事项的“基础知识”。请注意 TEMP 数据库设置。 http://technet.microsoft.com/zh-cn/library/cc966534.aspx


0

管理小的MDF文件很困难,您必须使用SQL Server,而SQL Server数据库为每个数据库提供10GB的数据存储,因此这很容易。


谢谢您的帮助。我已经在这个应用程序上工作过了。所以按照您的意见,最好重新开始,是吗? - FARHAD AFSAR

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接