質問

比較的大きなDBテーブル( 70万行)を使用してプロジェクトに取り組んでいます。

ミス、DBスキーマの設計中に作成しました。 行が増えていたときに、IDの列タイプbigint( x )を増やす必要がありました。

現在、bigint(44)です。 パフォーマンスを大幅に低下させる可能性があると考えたため、高いx値を設定することを恐れています。たぶん私は間違っている..

問題の解決を手伝ってください。

一度設定して、この問題を忘れてもよい列タイプは何ですか?

DBスキーマ設計の分野で何を学ぶべきですか?

役に立ちましたか?

解決

BIGINT(44)として列を作成すると、" 44"は表示幅です-保存できる値の範囲や値の取得速度には影響しません。

自動インクリメントIDには、 UNSIGNED 番号を使用します。 BIGINT(44)UNSIGNED 。これにより、値の範囲が2倍になり、追加の制約が追加されます。これは通常、良いことです。

未署名のINTは最大4,294,967,295を保存します 署名のないBIGINTは最大18,446,744,073,709,551,615を保存します-すぐにそれを埋めることはありません。

最大IDがどれだけ速く成長しているかは言わない-多くの行を挿入しない場合は、 UNSIGNED INT を使用する必要があります。スペースが少なくなります。

他のヒント

主キーはデフォルトで署名されないと思います。いずれにせよ、主キーに負の数を使用することはせいぜい眉をひそめ、物を壊します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top