MySQL数据表中,用户id这样的自增字段,应该是数字型还是字符型?各有什么优缺点?
大家讲道理
大家讲道理 2017-04-17 15:51:39
0
2
679

如题,设计一张表,id这种自增字段该怎么选择类型?

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全員に返信(2)
洪涛

増加する整数を使用します。

リーリー

id は通常、負の数ではないため、UNSIGNED を使用します。
id は ID カードに相当し、NULL にすることはできません。
なぜ整数なのかというと、次の 2 つの要素に関係しています。

  1. はスペースを占有します。

  2. 効率。

  3. MySQL の AUTO_INCREMENT は文字型をサポートしていません。言うまでもなく、
    は空間を占有し、INT のみを占有します。非負に設定すると、表現できる範囲は 2 倍になります。このような大量のデータを表すために使用されます。4个字节-2^31 (-2,147,483,648) 到 2^31 – 1 (2,147,483,647)

  4. 効率はインデックスの構造に関係します。MySQL はインデックスのデータ構造として
を使用しますが、自動増加する整数を使用すると、データの挿入は最大でもノードの

のみになります。文字列を使用すると、どこにでも Inserted が発生する可能性があります。これは、ノードの B+树 が発生する可能性があることを意味します。次に、データ クエリ中、文字列比較は整数比較よりも遅くなります。 分裂 移动和分裂詳細については、次を参照してください:

主キーの自動インクリメントにより、データベース挿入のパフォーマンスが低下しますか?もしそうなら、なぜこれほど多くの企業がまだそれを使用しているのでしょうか?


最後に: 主キーは特定のデータ = =.. とは何の関係もないことを支持します。 したがって、主キーとして整数を使用することはより良い選択です。

いいねを押す +0
Ty80

数値化された便利なインデックス

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート