gpt4 book ai didi

mysql - 如何估计已知列范围的 MYSQL 数据库大小

转载 作者:行者123 更新时间:2023-11-29 02:50:12 26 4
gpt4 key购买 nike

我正在尝试估计已知列范围的数据库大小。我已经搜索过了,但找不到任何合适的规则。

我创建了一个单表数据库,该表有 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`)
)

我该怎么做?我需要插入假数据来计算大小吗?

最佳答案

使用 Data Type Storage Requirements你可以估计 table 的大小:

  • int 是 4 个字节,注意 (11) 仅表示要显示的最大位数(参见 this answer )。
  • (L+4) 每个字符串列,L 是字符串的字节长度。但请注意,当您使用 Unicode (utf8) 时,并非所有字符都使用相同的字节数。

所以大小是:

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

R 是记录数,L 是平均字符串大小。

采用 R=2*106 和 L=1000 字节,这给出了大约:

2*106 * ( 4 + 39 ( 1004 ) ) = 7.832 * 1010 字节

这大约是 72.9 GiB,对于其他 L:

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

一些进一步的说明:

关于mysql - 如何估计已知列范围的 MYSQL 数据库大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36793101/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com