我想創建一個MySQL的InnoDB表看起來像這樣:MySQL InnoDB:主鍵+無符號整數大小?
key
,value
key
是一個自動incremenet整數(0〜5000000) value
是一個無符號INT16值(0到65535)
該表的每一行所佔的大小(單位爲KB)是多少?
我想創建一個MySQL的InnoDB表看起來像這樣:MySQL InnoDB:主鍵+無符號整數大小?
key
,value
key
是一個自動incremenet整數(0〜5000000) value
是一個無符號INT16值(0到65535)
該表的每一行所佔的大小(單位爲KB)是多少?
每個INT
是4個字節,每個SMALLINT
是2個字節。所以每行都是6個字節(我不會以KB爲單位給你)。我認爲key
也是主要關鍵指標。 InnoDb索引的開銷大約爲1.4,因此每行增加6個字節(大致)到密鑰。
如果一列可以爲NULL,那麼每行有另一個字節。
根據10.5 Data Type Storage Requirements您需要3個字節的密鑰(MEDIUMINT)和2個字節的值(SMALLINT)。
哇,這是很多的空間!有什麼方法可以將這些信息存儲在很少的空間中嗎? – user3262424 2011-03-22 23:11:41
每行數據有12個字節有很多空間?即使你存儲了所有500萬個密鑰的記錄,那也只有60 MB。 – 2011-03-23 07:51:37