Innodb表文件大小

时间:2013-11-21 12:00:44

标签: mysql innodb myisam

我创建了数据库“test_data_base”并创建了Inno db表“test_inno_db_table”(MySQL 5.6.6)。转到“var / lib / mysql / test_data_base /”文件夹(在Ubuntu 13.04上),看到我的表文件有一些默认大小,我有innoDb“ibdata”的默认文件。然后我将一些数据设置到此表并查看文件大小,但没有任何更改。

http://dev.mysql.com/doc/refman/5.6/en/innodb-multiple-tablespaces.html - 在这里我们可以看到innodb_file_per_table默认是打开的。但为什么我的文件大小不会改变。例如,当我创建MyIsam表时,它会为此表创建3个文件,当我设置数据时,文件大小也会增加。

为什么设置新数据时文件值不会增加?

1 个答案:

答案 0 :(得分:1)

您确定您的innodb_file_per_table已启用吗?检查:

mysql> show variables like '%per_table%';
+-----------------------+-------+
| Variable_name         | Value |
+-----------------------+-------+
| innodb_file_per_table | ON    |
+-----------------------+-------+

我认为此值为“OFF”,因此使用全局表空间ib_data1。 然后,预先分配了大量的磁盘空间。你可以找到这样的初始大小:

mysql> show variables like '%innodb%data%';
+--------------------------+------------------------+
| Variable_name            | Value                  |
+--------------------------+------------------------+
| innodb_data_file_path    | ibdata1:10M:autoextend |

已更新

这是我尝试过的。我一直在看文件大小如何发光。它一下子长大了32kb。我也在使用梭子鱼格式。我建议插入更多的记录。

mysql> create table db_size_test( a int, b int, c int);
Query OK, 0 rows affected (0.01 sec)


[XXXX]$ ls -lh db_size_test.ibd
-rw-rw---- 1 xxxx xxxx  96K 11월 21 21:26 db_size_test.ibd

mysql> select count(*) from db_size_test;
+----------+
| count(*) |
+----------+
|     1001 |
+----------+
1 row in set (0.00 sec)

[XXX]$ ls -lh db_size_test.ibd
-rw-rw---- 1 xxxx xxxxx 128K 11월 21 21:28 db_size_test.ibd