mysql - 表的主键都是varchar(64),有什么不好?
ringa_lee
ringa_lee 2017-04-17 15:06:53
0
4
934

见识到一个java项目,mysql数据库,所有表的主键都是varchar(64)

ringa_lee
ringa_lee

ringa_lee

全員に返信(4)
刘奇

int と比較して、varchar はより多くのディスク領域を占有し、より多くのディスク IO とより多くのメモリ帯域幅を持ちます。これは innodb で特に顕著で、innodb テーブルのセカンダリ インデックスのリーフ ページには主キーの値を格納する必要があります。主キーが varchar の場合、セカンダリ インデックスのサイズは大きくなります。さらに、varchar 主キーは、挿入中にデータの非順次挿入を送信しやすく、その結果、インデックス ツリーの効率が int

よりも低くなります。
いいねを押す +0
大家讲道理

これは怠惰の兆候です!

いいねを押す +0
巴扎黑

非常に無駄でプロフェッショナルではありません。

char()型の場合、与えられる値は5です。その場合、フィールドに値があるかどうかに関係なく、null であっても 5×当前数据库编码字节 を占有します。 varchar() は、最初に 1 バイトを使用して型の最大範囲を記録します。値が渡されない場合は、最初のバイトのみが記録され、値の最大範囲内の内容が保存されます。

残りのフィールドの各レコードが占めるハードディスク容量については、個別に説明します。

いいねを押す +0
阿神

上で述べたことはすべて正しいです
おそらく彼が記録したコンテンツは UUID です
多くの JSP プログラミング ライブラリはライブラリを設計するときにこのようになっていますが、理由はわかりません

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