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

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

ringa_lee
ringa_lee

ringa_lee

全部回覆(4)
刘奇

varchar相對於int來說佔用磁碟空間多,磁碟io也會多,然後記憶體頻寬也會多。這一點上尤其在innodb更為明顯,innodb表的Secondary index的 leaf page中都要保存primary key的值,主鍵如果是varchar,會導致secondary index的體積會比較大。而且varchar主鍵在比較上也會慢一些,插入時容易發送資料的非順序插入,導致碎片,index tree效率比int低

大家讲道理

這是偷懶的表現!

巴扎黑

很浪費,且不專業的表現。

如果是char()型,如值給的是5。那麼不管該欄位內是否有值,就算null也將佔用5×当前数据库编码字节。 varchar()則會先用一個位元組記錄該型別最大範圍,如不傳值也就記錄首字節而已,傳至則儲存值最大範圍內的內容。

其餘的欄位其每筆記錄佔用硬碟體積另說。

阿神

樓上說的都很對
可能他記錄的內容是UUID
很多jsp程式設計庫的時候都這樣,不知道為什麼

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板