估计 Mysql 添加表时将使用的数据空间

估计 Mysql 添加表时将使用的数据空间

首先,一些英语估计不同于测量。如果我想测量,我会这样做;)(我以后可能会这样做)。此外,我有一个开发问题与此帖子相关的问题。

我想将数据存储在 MySQL 表中,表的数据类型是日期、长整型、长整型、长整型、短整型,其中我将有一个基于日期、长整型、长整型的复合键。

也可能有更多的索引。(编辑)似乎四十二字节数据加上索引。每天插入 100 万条记录可以满足数据增长的需求。我是不是应该说四十二每天将增加百万比特(根据配置,我猜还会更多)

所以看看这个http://dev.mysql.com/doc/refman/5.1/en/numeric-types.html结果是

我可以假设每天添加 100 万行。这会占用多少磁盘空间?任何参考资料都将不胜感激(我会尝试找到一些并将其发布在这里)

答案1

您应该向 MySQL 的 information_schema 询问该信息。

方法如下:

SELECT AVG_ROW_LENGTH FROM information_schema.tables
WHERE table_schema='whateverdatabase'
AND table_name='whatevertable';

现在,您可以使用该值的倍数进行估算。因此,对于您来说,这将是:

SELECT (AVG_ROW_LENGTH * 1000000) AverageSpaceForOneMillionRows
FROM information_schema.tables
WHERE table_schema='whateverdatabase'
AND table_name='whatevertable';

答案2

等一下,我根据

4 times long = 32 Byte
1 time shortint = 2 Byte
1 time datetime = 8 Byte

总计为 42 字节 = 336 位。加上每行的开销(未知)。再加上至少 32 字节的索引。因此一行大约为 80 字节或 640 位。

100 万乘以 80 字节等于 80,000,000 字节,即 80 兆字节(不是兆字节)。这只是一个粗略的估计。

相关内容