我有一个测试表。测试表如下:
CREATE TABLE `mytest` (
`num1` int(10) unsigned NOT NULL,
KEY `key1` (`num1`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
我在这个表中插入了 5000 万行。
当我确实显示表状态时,avg_row_length 为 7。我期待看到 4,因为 mySQL 使用 4 个字节作为整数。密钥对 avg_row_length 有影响吗?当我查看我的 .MYD 文件时,大小为 334 MB,这正是考虑到 avg_row_length 为 7 时的大小,但我真的希望看到 190 MB,因为我只有一个 int。
+----------------+--------+---------+------------+----------+----------------+-------------+------------------+--------------+-----------+----------------+---------------------+---------------------+------------+-------------------+----------+----------------+---------+
| Name | Engine | Version | Row_format | Rows | Avg_row_length | Data_length | Max_data_length | Index_length | Data_free | Auto_increment | Create_time | Update_time | Check_time | Collation | Checksum | Create_options | Comment |
+----------------+--------+---------+------------+----------+----------------+-------------+------------------+--------------+-----------+----------------+---------------------+---------------------+------------+-------------------+----------+----------------+---------+
| mytest | MyISAM | 10 | Fixed | 50000000 | 7 | 350000000 | 1970324836974591 | 600518656 | 0 | NULL | 2010-05-22 09:15:06 | 2010-05-22 19:32:53 | NULL | latin1_swedish_ci | NULL | | |
我已经包含了 mytest 表的 show table status 的输出。对格式表示抱歉:D 在此先感谢!
亚历山德罗·费鲁奇