如题,设计一张表,id这种自增字段该怎么选择类型?
光阴似箭催人老,日月如移越少年。
増加する整数を使用します。
id は通常、負の数ではないため、UNSIGNED を使用します。 id は ID カードに相当し、NULL にすることはできません。 なぜ整数なのかというと、次の 2 つの要素に関係しています。
id
UNSIGNED
はスペースを占有します。
効率。
MySQL の AUTO_INCREMENT は文字型をサポートしていません。言うまでもなく、 は空間を占有し、INT のみを占有します。非負に設定すると、表現できる範囲は 2 倍になります。このような大量のデータを表すために使用されます。4个字节-2^31 (-2,147,483,648) 到 2^31 – 1 (2,147,483,647)
AUTO_INCREMENT
INT
4个字节
-2^31 (-2,147,483,648) 到 2^31 – 1 (2,147,483,647)
のみになります。文字列を使用すると、どこにでも Inserted が発生する可能性があります。これは、ノードの B+树 が発生する可能性があることを意味します。次に、データ クエリ中、文字列比較は整数比較よりも遅くなります。 分裂 移动和分裂詳細については、次を参照してください:
B+树
分裂
移动和分裂
最後に: 主キーは特定のデータ = =.. とは何の関係もないことを支持します。 したがって、主キーとして整数を使用することはより良い選択です。
数値化された便利なインデックス
増加する整数を使用します。
リーリーid
は通常、負の数ではないため、UNSIGNED
を使用します。id
は ID カードに相当し、NULL にすることはできません。なぜ整数なのかというと、次の 2 つの要素に関係しています。
はスペースを占有します。
効率。
MySQL の
AUTO_INCREMENT
は文字型をサポートしていません。言うまでもなく、は空間を占有し、
INT
のみを占有します。非負に設定すると、表現できる範囲は 2 倍になります。このような大量のデータを表すために使用されます。4个字节
-2^31 (-2,147,483,648) 到 2^31 – 1 (2,147,483,647)
のみになります。文字列を使用すると、どこにでも Inserted が発生する可能性があります。これは、ノードの
主キーの自動インクリメントにより、データベース挿入のパフォーマンスが低下しますか?もしそうなら、なぜこれほど多くの企業がまだそれを使用しているのでしょうか?B+树
が発生する可能性があることを意味します。次に、データ クエリ中、文字列比較は整数比較よりも遅くなります。分裂
移动和分裂
詳細については、次を参照してください:最後に: 主キーは特定のデータ = =.. とは何の関係もないことを支持します。 したがって、主キーとして整数を使用することはより良い選択です。
数値化された便利なインデックス