1

使用 ASP.NET 和 Windows 堆栈。

目的: 我有一个网站,每 6 个月接收超过 1GB 的数据。所以你可以告诉我的数据库可能会变得很大。

问题: 大多数托管服务提供商只提供 1GB 增量的数据库。这意味着每次超过 1GB 时,我都需要创建另一个数据库。我在这种类型的设置方面完全没有经验,我正在寻找一些关于该怎么做的建议?

想知道:

  1. 我是否将会员资料移至单独的数据库?由于我拥有的其他数据的大小,这仍然无法解决太多问题。
  2. 我是否将数据归档到另一个数据库中?如果我这样做,我如何允许用户访问它?
  3. 如果我在两个数据库之间拆分数据,我是否将表命名相同?
  4. 我用 LINQ 查询我的所有数据。所以建立几个不同的连接不会是一件可怕的事情。
  5. 是否有任何人都知道可以扩展其数据库的托管服务提供商?

我只想知道该怎么办?我该如何解决这个困境?到目前为止,我还没有收到每月花费超过 50 美元的广告费……

虽然http://www.ultimahosts.net/windows/vps/似乎以最优惠的价格提供了最好的解决方案,但他们仍然将数据库分开。那么我从这里去哪里呢?

同样,我是多个数据库的完全业余爱好者。我一次只用了一个。。

4

6 回答 6

1

如果他们真的对每个 DB 施加 1GB 的硬限制并为每增加一个 GB 创建一个新的限制,我会感到非常惊讶,但假设情况确实如此 -

  1. 指定一个特定的数据库作为您的主数据库。这是您的应用程序将直接连接到的唯一一个。
  2. 在第二个(以及第三个、第四个等)数据库中创建您需要的所有表的克隆。
  3. 在您的主数据库中,创建一个在表上执行 UNION 作为跨 DB 查询的视图 - SELECT * FROM Master..TableName UNION SELECT * FROM DB2..TableName UNION SELECT * FROM DB3..TableName

对于写作,你需要使用 sprocs 来定位相关记录并更新它们,但你应该不会有什么大问题。原则上,如果需要,您可以扩展上面的视图以返回记录所在的数据库。

于 2009-11-18T17:40:24.443 回答
0

您应该选择 Windows VPS 解决方案。大多数 Windows VPS 提供商将提供 SQL 2008 Web 版,可支持高达 10 GB 的数据库空间......

于 2011-07-01T06:51:43.983 回答
0

您可能想寻找更好的托管服务提供商。

甚至 SQL Express 也支持 4GB 的数据库,而且它是免费的。一些主机不喜欢在共享环境中使用 SQL Express,但是现在磁盘空间非常便宜,因此找到一个以超过 1GB 的块开始或增长的计划应该很容易。

于 2009-11-15T11:20:44.133 回答
0

我相信解决方案比这简单得多:此外,如果您的提供商在 1 GB 空间中管理数据库,这并不意味着您有 N 个每个 1 GB 的数据库,这意味着一旦达到 1 GB,数据库可以增加到移动到2 GB、3 GB 等等...

问候
马西莫

于 2009-11-05T23:34:37.467 回答
0

您将有多个问题需要回答:

  1. 如果按照您说的方式,当前的托管服务提供商似乎不太可靠:每次初始数据库超过 1GB 时,他们都会创建一个新数据库 - 这听起来很奇怪......至少他们应该增加当前的存储空间db 并宣布您将被收取更多费用...查找其他具有更好选择的托管解决方案...
  2. 您当前的数据库中是否有任何可以存档的信息?这是一个非常重要的问题,因为您可能会携带“无用”数据,这些数据可以归档到单独的数据库中,并且仅在特殊请求时才进行查询。正如其他同事已经告诉你的那样,这对我们来说很难评估,因为我们不知道数据模型。
  3. 你能把数据模型分成两个完全不同的存储,并且只在它们之间复制公共信息吗?您可以使用 SQL Server 复制 ( http://technet.microsoft.com/en-us/library/ms151198.aspx ) 在数据库之间维护相同的成员信息。如果无法拆分数据模型,那么我看不到拥有多个数据库的任何实际选择 - 只需找到更大的存储解决方案即可。
于 2009-11-06T09:30:54.030 回答
0

回答这个问题非常困难,因为它至少需要了解有关数据模型、数据查询方式等的一些基本事实。同样正如 rexem 所建议的,更好地理解使用模型可能允许使用规范化来限制增长(如果适用,我也可能允许引入压缩)

我对一般方法和商业模式感到更加困惑(而且我确实理解需要通过基于广告收入的启动应用程序来降低成本)。难道你不能签订一个能满足你未来 6 个月需要的数量,然后,当你开始超出这个空间时,购买额外的存储空间(额外的 6 个月/年,到那时你可能会“富有” ); 这样甚至可能不需要您做任何事情(取决于托管服务管理机架等的方式),或者更糟糕的是,可能需要您将旧数据库复制到新的(更大的)存储?

以这种方式,您不需要以任何人为的方式拆分数据库,因此专注于面向客户的功能,而不是优化需要从多个服务器编译信息的查询。

于 2009-11-03T18:38:42.090 回答