2016-09-23 21 views
0

データ型に関係なく10列のテーブルがあり、このテーブルに挿入を実行する必要があるとします。しかし、制約として、同じ列に同じ値を持つ(id列を取り除く)場合にのみ、すべての行が異なる必要があり、2行が等価です。例えば複合インデックスのパフォーマンス

について

等しい: (0,1,2,3,4,5,6,7,8,9)及び(0,1,2,3,4,5,6、 7,8,9)

異なる: (0,1,2,3,4,5,6,7,8,9)および(0,1,2,0,4,5,6、 7,8,9)

私が知っている唯一の解決策は、すべての列を組み合わせたインデックスを作成することですが、私はperformace(もっと列になる可能性があります)について心配しています。 このインデックスはパフォーマンスにどれだけ影響を与えますか? もちろん、私は他の解決策が存在する場合はそれを知りたいと思います。

+1

あなたの方法を試してください。それが遅すぎる場合は、それについて尋ねることができます。 –

+0

http://stackoverflow.com/questions/34029921/using-multi-column-unique-indexes-vs-single-hashed-column –

答えて

0

これはRDBMSなどによって異なりますが、複数の列にまたがるユニークなインデックスでは、パフォーマンスに大きな問題はないはずです。インデックスに「最も左にある」列(つまり、「インデックス作成」文の最初の列)を最もユニークな列にすることができれば役に立ちます。

このrelated questionのリンクの示唆しているように、代わりに、列の値のハッシュを作成し、その1つのハッシュされた列に一意のインデックスを作成します。

「複数の列にわたる一意のインデックス」ソリューションが十分高速であるかどうかを判断するためのパフォーマンステストスイートを作成すると、すべての選択肢が多くの作業になる可能性があり、速度が遅くなる可能性があります。

関連する問題