2017-06-28 1 views
0

私は数百万の128ビットのハッシュ値をデータベースに保存しなければならず、私は自分のテーブルデザインに苦労しています。128ビットハッシュを格納するには、2つのbigintsまたはバイナリ(16)?

2つのBIGINTフィールドにハッシュを格納するか、BINARY(16)だけを使用する必要がありますか?私の典型的な使用例は、ハッシュに基づいて重複レコードを見つけることです。

私はちょうど(2 bigints付き)(バイナリ(16)列で)

select * from hash where [email protected] and [email protected] 

かを使用することができ

select * from hash where [email protected] 

それが賢明なパフォーマンスを重要ですか?

私はMS SQL Serverを使用していますが、ここでは重要ではないと思います。しかし、私はC#プログラムからMS SQLにアクセスしています。値の読み書きは簡単ですが、取引の中断はしません。現在私はulongの配列を持っています。

+2

単一の値が128ビットの場合、なぜ複数の列に分割するのですか? –

+0

良い質問です。私のプログラムはC#で書かれており、そこには128ビットがulong配列に格納されているので、SQLで同じものを使うのは当然です。 – itix

答えて

0

私は、バイナリまたはvarbinaryを使用する方が意味があるように見えます。また、1つの列にのみインデックスがあるようです。

関連する問題