0

すべての行 ID 列に "bigint" (64 ビット整数) を使用していることに気づきました。これは、テーブルが 32 ビット整数の最大値を超える行数を保持することを期待しているからではなく、常に追加と削除を行っているためです。時間の経過とともに行が増加すると、ID 値が 32 ビット整数の値を超える可能性があります。これにより、オーバーフロー エラーが発生し、後続の挿入ステートメントが成功しなくなることを私は理解しています。

ID 列を定期的に「デフラグ」または再シードする特別なロジックを追加する以外に、これに対する回避策はありますか? それとも、安全のために「bigint」を使い続ける必要がありますか? それは安全ですか?

私の計算では、私のデスクトップは、タイト/無限ループで整数を 0 から 2^64 にインクリメントするだけで、最大 1826 年かかります。繰り返しになりますが、私のコンピューターよりも 1,000 倍高速なコンピューターは、1、2 年でそれを実行できます。これは、データベースの行キーとして 128 ビットの一意の識別子を利用する良いケースでしょうか?

4

0 に答える 0