1

Partsというデータベーステーブルがあります。各行はシステムの一部です。このテーブルの主キーはIDと呼ばれ、IDシードであり、整数データ型です。このテーブルに新しいパーツを追加しています。

私のユーザーは私に追加する約1000行を与えてくれました。1000000から14230004までのIDが必要であることに気付きました。そこで、ID挿入をオンに設定して新しい行を追加します。また、追加された行は、アプリケーションから他のテーブルで参照されることがあります。これらの行は、Webアプリケーションのツリービューにも表示されます。

私の質問ですが、私の場合、IDの主キーを1から開始できる1000000から開始するのは悪い習慣ではありません。1から開始すると、テーブルのインデックスが改善され、取得時間が短縮されますか?私が理解している限り、このような大きな整数からIDを開始する必要はありません。IDを1から開始するようにユーザーにプッシュする必要があるかどうかについて意見を聞きたかっただけです。

4

3 に答える 3

1

OK - つまり、1 ではなく 100 万から開始すると、21 億 4000 万行ではなく 204 億行になります。

100 万から始まるを使用し、24 時間体制で 1 日中、1 年中毎日 1秒ごとINT IDENTITYに行を挿入する場合、20 億の制限に達するまでに (66.5 年ではなく) 63.4 年必要です ... .

それで十分ですか??

于 2013-02-11T17:59:18.530 に答える
1

私の質問は、私の場合、1 から開始できる 1000000 から ID の主キーを開始することは悪い習慣ではないということです。

通常、このようなものを見ると、理由があります。

1 から開始すると、テーブルのインデックスが改善され、取得時間が短縮されますか?

いいえ。整数を格納する場合、1000000 は 1 より多くのスペースを必要としません。dbms は、行の数と分布が同じであり、同一で偏りのないインデックスが与えられた場合、1 を見つけるのと同じくらい速く 1000000 を見つけることができます。

ID を 1 から開始するようユーザーに圧力をかける必要があるかどうかについて意見を求めたかっただけです。

いいえ、ユーザーに 1 から始めるように圧力をかけるべきではありません。おそらくあなたが知らないことを知っていると思われる他の誰かが、別の番号から始めさせている理由を見つけようとする必要があります。

于 2013-02-11T17:59:50.820 に答える
1

それは問題ではありません。SQL の int は、他の int と同じくらいのスペースを占有します。それらはすべて 4 バイトのストレージを使用します。インデックス作成では、数値が何であるかは気にしません。

ただし、使用可能なすべての ID をすぐに実行できます。ただし、ms sql int は 2,147,483,647 (2^31-1) で最大になるため、問題にはなりません。

于 2013-02-11T17:57:46.767 に答える