SQL Server在一个或多个表中有大量数据

时间:2013-01-17 09:15:55

标签: sql sql-server

我想知道在一个或多个表中存储大量数据会更有效率。 假设我们想要存储不同地形模型的所有椎体。

第一个解决方案 - 以传统方式,我们可以创建两个表: 表地形(id,名称,描述)和 表顶点(terrainId,x,y,z)。

然后所有地形的顶点都存储在一个表(Vertex表)中 - 这个表可能非常大(数亿个椎体)。

第二个解决方案 - 为每组顶点创建一个表。 表Vertex-For-Terrein1(x,y,z), 表Vertex-For-Terrein2(x,y,z), ... 表Vertex-For-Terreinn(x,y,z)。

在第二种方式中,Vertex表不存储有关terrain的信息(此信息在表名中处理,例如Table Vertex-For- Terrein1 )。

什么会更有效率或更好的表现?

3 个答案:

答案 0 :(得分:1)

第一个解决方案。索引Vertex上的terrainId表。

第二种解决方案是非规范化,这将使数据难以维护。如果您的要求足够有限,第二个解决方案更合适,您可能不需要RDBMS系统。

答案 1 :(得分:1)

我会使用第一个解决方案,您可能希望通过地形ID的功能将您的表分区到每个可管理的地形,同时具有标准化设计的灵活性......

答案 2 :(得分:0)

这取决于您将如何查询此数据。可能每个顶点只能作为varchar(max)存储在Vertext表的一行中。