怪我咯2017-04-17 15:08:53
varchar相對於int來說佔用磁碟空間多,磁碟io也會多,然後記憶體頻寬也會多。這一點上尤其在innodb更為明顯,innodb表的Secondary index的 leaf page中都要保存primary key的值,主鍵如果是varchar,會導致secondary index的體積會比較大。而且varchar主鍵在比較上也會慢一些,插入時容易發送資料的非順序插入,導致碎片,index tree效率比int低
巴扎黑2017-04-17 15:08:53
很浪費,且不專業的表現。
如果是char()型,如值給的是5。那麼不管該欄位內是否有值,就算null
也將佔用5×当前数据库编码字节
。 varchar()則會先用一個位元組記錄該型別最大範圍,如不傳值也就記錄首字節而已,傳至則儲存值最大範圍內的內容。
其餘的欄位其每筆記錄佔用硬碟體積另說。