2016-04-22 64 views
1

我想知道列範圍的數據庫大小。我搜查了它,但無法找到任何適當的規則。如何估計已知列範圍的MYSQL數據庫大小

我創建了一個帶有單個表的數據庫,並且此表有40個列。一列是int主鍵,其餘39列是LONGTEXT類型。

我期待200萬條記錄。

CREATE TABLE IF NOT EXISTS `TempTable` (
    `Id` int(11) NOT NULL AUTO_INCREMENT, 
    `Column1` longtext, 
    `Column2` longtext, 
    -- 
    -- 
    -- 

    `Column39` longtext, 

    PRIMARY KEY (`Id`) 
) 

我該怎麼做?我是否需要插入假數據來計算大小?

+0

@RolandStarke〜4 GB 2萬行? –

回答

1

使用Data Type Storage Requirements可以估算出表的大小:

  • int爲4個字節,注意(11)僅表示的最大位數顯示(見this answer)。
  • (L + 4)每個字符串列,L是字符串的字節長度。但請注意,當您使用Unicode(utf8)時,並非所有字符都使用相同的字節數。

所以尺寸是:

R * (4 + 39*(L+4)) 

隨着R被記錄L平均字符串大小數和。

以R = 2 * 10 和L = 1000個字節,這給出了關於:

2 * 10 *(4 + 39(1004))= 7.832×10 10個字節

大約是72.9吉布,對於其它的L:

L (bytes)  : 10 100 1000 10000 
Table size (GiB): 1 7.5 72.9 726.7 

一些進一步的說明: