我想知道在一个或多个表中存储大量数据会更有效率。 假设我们想要存储不同地形模型的所有椎体。
第一个解决方案 - 以传统方式,我们可以创建两个表: 表地形(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 )。
什么会更有效率或更好的表现?
答案 0 :(得分:1)
第一个解决方案。索引Vertex
上的terrainId
表。
第二种解决方案是非规范化,这将使数据难以维护。如果您的要求足够有限,第二个解决方案更合适,您可能不需要RDBMS系统。
答案 1 :(得分:1)
我会使用第一个解决方案,您可能希望通过地形ID的功能将您的表分区到每个可管理的地形,同时具有标准化设计的灵活性......
答案 2 :(得分:0)
这取决于您将如何查询此数据。可能每个顶点只能作为varchar(max)存储在Vertext表的一行中。