1

大量のデータを1つ以上のテーブルに格納すると、何がより効率的になるのでしょうか。さまざまな地形モデルのすべての頂点を保存するとします。

最初の解決策-従来の方法では、テーブル地形(id、name、description)とテーブル頂点(terrainId、x、y、z)の2つのテーブルを作成できます。

次に、すべての地形の頂点が1つのテーブル(頂点テーブル)に格納されます。このテーブルは非常に大きくなる可能性があります(数億の頂点)。

2番目の解決策-頂点のセットごとに1つのテーブルを作成します。テーブルVertex-For-Terrein1(x、y、z)、テーブルVertex-For-Terrein2(x、y、z)、…、テーブルVertex-For-Terreinn(x、y、z)。

2番目の方法では、Vertexテーブルは地形に関する情報を格納しません(この情報はテーブル名で処理されます(例:Table Vertex-For- Terrein1))。

何がより効率的で、より良いパフォーマンスを発揮しますか?

4

3 に答える 3

1

最初の解決策。Vertexでテーブルにインデックスを付けterrainIdます。

2 番目の解決策は、データの維持を困難にする非正規化です。要件が十分に限定されていて、2 番目のソリューションがより適している場合は、おそらく RDBMS システムは必要ありません。

于 2013-01-17T09:24:14.710 に答える
1

私は最初の解決策を使用します。正規化された設計の柔軟性を持ちながら、管理可能な個々の地形への地形IDの関数によってテーブルを分割することを検討することをお勧めします...

于 2013-01-17T09:30:03.307 に答える
0

このデータをどのようにクエリするかによって異なります。おそらく、各頂点は varchar(max) として 1 行だけ Vertext テーブルに格納できます。

于 2013-01-17T09:58:55.720 に答える