我正在尝试估算已知列范围的数据库大小。我已经搜索过但却找不到合适的规则。
我创建了一个包含单个表的数据库,该表有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 :(得分:1)
使用Data Type Storage Requirements,您可以估算表格大小:
int
为4个字节,请注意(11)
仅表示要显示的最大位数(请参阅this answer)。所以尺寸如下:
R * ( 4 + 39*(L+4) )
R
是记录数,L
是平均字符串大小。
取R = 2 * 10 6 且L = 1000字节,这给出了:
2 * 10 6 *(4 + 39(1004))= 7.832 * 10 10 字节
对于其他L&#39,约为72.9 GiB。
L (bytes) : 10 100 1000 10000
Table size (GiB): 1 7.5 72.9 726.7
进一步说明: