チェックサムをプライマリキーとして使用すると、いくつの行を持つことができますか?チェックサムをプライマリキーとして使用すると、いくつの行を持つことができますか?
答えて
CHECKSUM
は、int
を返します。したがって、teatertically 2^32 = 4294967296の固有の値を持つことができます。 しかし、実際の生活では、チェックサムは異なる引数について同じ結果を返すことができるので、その数値に達することはありません。 このため、チェックサム結果をPKとして使用しないでください。
チェックサムは一意ではないため、主キーとして使用しないでください。通常の自動インクリメントPK、チェックサムカラムを作成し、必要に応じてインデックスを追加します。
ここに、ハッシュが衝突する理由があります。衝突は、2つの異なる入力が同じハッシュになる場合です。 それは起こりそうにないが、チャンスはある。たとえば、テキスト "plumless"を持つファイルのCRC32は、テキスト "buckeroo"とまったく同じです。 "コーディング" vs "gnu"と同じです。
約250.000行を取得すると、衝突する可能性があるため、PKが重複する可能性がかなり高くなります。チェックサムがユニークな、定義*で*、ではないので
ソース主キーとしてチェックサムを使用して
"起こりそうにありません" - どのような種類のデータを「CHECKSUM」に供給しているかによって異なります。あなたがちょうど2つの「INT」を送り込んでいて、それらが低い値になる可能性が高い場合、衝突はかなり可能性があります。私のマシンでは、 'select CHECKSUM(4,0)、CHECKSUM(0,64)'は両方の式に対して64を生成します。 –
'CHECKSUM'は実際には共通のインスタンスで衝突を起こす可能性のあるひどいアルゴリズムを実際に使用します。ダミアンの例は多くのうちの1つに過ぎません。適切に検査されたチェックサム( 'HASHBYTES( 'sha1'、...) 'のような)を使用することで、根本的な問題は解決されませんが、問題は改善されます。 –
ありがとう、私は答えを編集しました! –
- 1. NVD3設定を使用すると、1つとして、グラフを持つことができますNVD3で
- 2. Activator.CreateInstance()を使用して、パラメータを持つコンストラクタを持つジェネリックファクトリを作成することはできますか?
- 3. 2つのファイル名を持つことができますか?
- 4. いくつの結果テストを実行することができますか?
- 5. なぜ私はPythonとピップを使用してsudoなしでいくつかのことを行うことができないのですか?
- 6. 私はWinMainでラムダとしてメインウィンドウプロシージャを持つことができますか?
- 7. フェイスブックインスタントアーティクル用のフィードを複数持つことができます
- 8. 2つの領域を持つことはできますか?
- 9. private/protectedメソッドを持つインターフェイスを使用することはできますか?
- 10. 私の活動から、私は私が私が開始または私はいつでも停止することができますサービスを持っているとputExtrasを(使用して、いくつかの余分な物を渡すためにONSTART()コマンドを使用して、ここでいくつかの助けが必要
- 11. 1つのSql Azureデータベースにいくつテーブルを持つことができますか
- 12. プライマリキーと外部キーを持つドロップテーブル
- 13. TeamBuildを使用しているときに「グローバル」キューを持つことは可能ですか?
- 14. 複数のFilterAttributesを持つことができますか?
- 15. UnityAppControllerのサブクラスを複数持つことができますか?
- 16. 不変のJPAエンティティを持つことができますか?
- 17. 汎用[this]プロパティを持つことはできますか?
- 18. モデルなしのDjangoフォームを持つことができます
- 19. fgetsを使用してprintfを使用すると、いくつかの行だけが出力されます。
- 20. enumはJavaでセッターを持つことができますか?
- 21. protobuf-netではバイトフィールドを持つことができますか?
- 22. Rails 3.1 selectは値としてオブジェクトを持つことができます
- 23. エンティティフレームワークにプライマリキーのないテーブルを持たせることはできますか?
- 24. ClassLoaderを引数として持つParcel.readメソッドを使用しているときに、BadParcelableException:ClassNotFoundExceptionをアンマーシャリングするとき
- 25. CherrypyはApacheを使用しているときにオプションを見つけることができませんか?
- 26. laravel 5は形でいくつかの値を持つとき
- 27. いくつか私はこれを働かせることができます
- 28. モジュールはプロパティを持つことができますか?
- 29. Android/eclipseに#regionsを持つことができますか。
- 30. レイヤーホスティングNSViewはサブビューを持つことができますか?
は、恐ろしい考えです。さらに、衝突を制御することができないため、格納する予定の行の数とは完全に独立して、どの行が一緒に行かないかを知ることさえできません。チェックサム値にインデックスを作成できますが、それらを一意にしないでください。 –
@Jeroen Mostertは絶対に正しいです。あなたのテーブルの行の例はいくつか教えていただけますか? –