2016-09-05 4 views
0

異なるキー指定に基づいて同じデータの格納と取得をモデル化しようとするRDBMSに2つのテーブルがあるとします。 TABLE1格納単一文字列の全体のキー、表2店そうのような複数列のキー:1つの列キーまたは複数の列キー?

表1:キー=文字列値=データ

表2:= COL1列、COL2 =文字列値=データ

表1のキーは、col1とcol2の組み合わせと同じ情報を保持しています。キー= "NASDAQ/SUNW"、col1 = "NASDAQ"、col2 = "SUNW"

効率的なデータ検索に興味があります。 Table1を使用する方がTable2より効率的でしょうか?

答えて

2

キーに複数の値が含まれている場合は、それらを別々の列に分ける必要があります。そうすれば、必要に応じてそれらを別々に索引付けすることができます。結果セットを2番目の値でフィルタリングできる必要がある場合(例では、SUNWを使用してすべてのレコードを検索する必要があると想像してください)。

大まかには、コンマ区切りの値を1つのデータベース列に入れると、間違ったことが起こります。

+0

正規表現「* SUNW。*」を使用してクエリすると、はるかに高価になりますか? – andrewz

+0

はい。 SUNWが別の列にある場合は、列を索引付けし、Bツリー検索(高速)を実行してその値を持つすべての行を検索できます。しかし、それが何か他のものと一緒に柱の中に埋もれているなら、それらを見つけるためにテーブルスキャン(遅い)をしなければならないでしょう。 –

関連する問題