0

私はテーブルを持っています

create table Objects (
    ObjectID bigint not null primary key,
    ObjectRef1 varchar(50) not null,
    ObjectRef2 varchar(50) not null,
    ObjectRef3 varchar(250) not null 
)

すべてのフィールドは一意です。テーブルには約 1 億行あります。すべての列には一意のインデックスがあり、クエリに頻繁に使用されます。

何が速いですか?各 varchar フィールドを個別のテーブルに正規化するか、そのままにしておくか? 正規化されている場合、テーブルには正規化されたテーブルへの ObjectID 列と ID のみが含まれ、内部結合を実行して ObjectRefX の値を取得します。

この量のデータについて、Hadoop などの他のデータベースを検討する必要がありますか?

4

1 に答える 1

1

パフォーマンスに関する 1 つのことは、クエリが実行されるまで予測できないことです。別のテーブルでこのデータを正規化すると、テーブルを外部キーに接続するため、依存関係が増加するため、テーブルをそのままにしておくことをお勧めします。さらに、すべての列が一意であるため、削減できる冗長性はありません。インデックスを配置します。ここでスキーマではなくクエリを最適化してみてください。

上記の回答に対する修正は大歓迎です。

私が何か助けになれば幸いです

ありがとう

アシュトッシュ・アリア

于 2013-08-26T08:48:40.553 に答える