2

それぞれが複数のアドレスを持つ最大 500 万の連絡先を格納するデータベースがあります。

DB は正規化され、連絡先への FK を持つ個別の Addresses-Table が適切にインデックス化されます。~10m の住所。

Address は再び Provinces & Countrys テーブルを参照しています。

これは、一度に 1 つの Contact が表示されるプラットフォームであり、Address プロパティで検索する必要がないため (さらに、Lucene.Net を使用する場合) .... Address 情報を XML フィールドに入れるだけでよいでしょうか?連絡先?

<Addresses>
    <Address Street="" City="" ... />
    <Address Street="" City="" ... />
</Addresses>

実際には非正規化ではありませんが、それでも 3 つの結合 (住所/国/州) を取り除きます

または別の言い方をすれば.... 5mio のレコードと 10mio のレコードを結合すると、データベースに負担がかかりますか? (たとえば、最大 50 のリクエストが DB に同時にヒットするとしますか?)

そのようなことをするのは時期尚早の最適化でしょうか? (Address プロパティをクエリすることは絶対にないと確信している場合のイベント...)

SQL Server 2012 を使用しています

4

1 に答える 1

0

この列を nosql として使用する場合、値を保存してデータ全体を取得するためだけに、このソリューションを使用できます。ただし、いくつかの制限があります。

  1. この列のデータを検索するのは難しい (ただし可能)
  2. この列のデータを変更するのは難しい (ただし可能)
  3. たとえば、EFを使用してこの列のデータの一部を取得することはできません(ストアドプロシージャを使用するだけです)
  4. フォアキーなし (データの一貫性を自分でサポートする必要があります)

そして、次の利点があります。

  1. 単純なストレージ (すべてのデータを含む 1 つのテーブル)
  2. 単純なクエリ

まもなく、はい、このデータの一部をクエリしたり変更したりしないと言うので、このソリューションを使用できます。

于 2014-01-18T07:41:54.700 に答える