我创建了数据库“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个文件,当我设置数据时,文件大小也会增加。
为什么设置新数据时文件值不会增加?
答案 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