SQL Server 2008中非常大的表性能

时间:2011-08-14 18:46:04

标签: performance sql-server-2008 tree

我将设计MMORPG原型。所以我应该在数据库中存储很多项目。

我想创建一个灵活的数据库,以实现简单的可伸缩性。以防万一不考虑。我认为[模型1]非常适合我的目标。

模型1

CREATE TABLE Unit {
  Id bigint NOT NULL PRIMARY KEY
  ItemId bigint
}

CREATE TABLE Items {
  Id bigint NOT NULL PRIMARY KEY
  Type int NOT NULL
  ParentItem bigint
  Field1 int
  Field2 int
  Field3 int
}

但我担心,它相当缓慢。 可能[Model 2]更适合我的项目。我不想用它。因为它绑定了我的手用于规模数据库。

模型2

CREATE TABLE Unit {
  Id bigint NOT NULL PRIMARY KEY
  ContainerId bigint
}

CREATE TABLE Items {
  Id int NOT NULL PRIMARY KEY
  Field1 int
  Field2 int
  Field3 int
  ContainerId int
  SubContainerId int
}

CREATE TABLE Containers {
  Id int NOT NULL PRIMARY KEY
}

问题:

  1. 是否可以在此类项目中使用[模型1]?

  2. 对于大量项目,[模型1]比[模型2]慢多少?

  3. 在Items表中计划了大量更新和插入。

    PS:抱歉我的英文。我的母语是俄语。

    Quassnoi的

    加法(见评论)

    生活中的例子。 该单位有一个袋子类型的物品。包有任何物品。其中一件是带有两种硬币的小袋。

    我必须进行3次查询才能获得硬币列表:

    SELECT ItemId FROM Units WHERE Id = 1 /* it's a bag */
    SELECT Id FROM Items WHERE ParentItem = firs_query_result AND Type = POUCH /* it's a pouch */
    SELECT * FROM Items WHERE ParentItem = second_query_result AND (Type = COIN1 OR Type = COIN2) /* coins in my pouch */
    

0 个答案:

没有答案