1

我有一个 InnoDB 表。mysql的版本是'5.1.66-0+squeeze1'。我想看看桌子的大小。

SHOW TABLE STATUS LIKE "tablename"

我得到:

'tablename', 'InnoDB', '10', 'Compact', '27', '606', '16384', '0', '49152', '4194304', '55', '2013-07-26 15:53:04', NULL, NULL, 'utf8_general_ci', NULL, '', ''

我添加一行并获得:

'tablename', 'InnoDB', '10', 'Compact', '28', '585', '16384', '0', '49152', '4194304', '56', '2013-07-26 15:53:04', NULL, NULL, 'utf8_general_ci', NULL, '', ''

为什么data_lengthindex_length没有改变?

4

1 回答 1

0

这两个变量都只是估计值。维护数据长度和索引长度的精确数字(以字节为单位)的成本是令人望而却步的,因为对于并发访问的服务器,这必须意味着序列化写入。

InnoDB 是一个高度并发的引擎;因此,它选择了粗略估计的道路。

有多粗糙?很粗糙的。50%-200% 的“错误”很常见;我见过更多。

于 2013-07-27T17:17:16.457 回答