mysql - Innodb表文件大小

标签 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个文件,当我设置数据时,当然文件大小也会增加。

为什么当我设置新数据时,文件值没有增加?

最佳答案

您确定您的 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

关于mysql - Innodb表文件大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20120475/

相关文章:

php - 在 Laravel 中,我的表列被连接覆盖,我该如何解决?

mysql - Innodb 缓冲池大小变量和 innodb 状态中的缓冲池大小不匹配

php - InnoDB 与 MyISAM

MySQL - 每天处理 200M+ 条记录

php - 时区设置不正确

mysql - 有关将 MYSQL DB 及其数据从拉丁语转换为 UTF-8 的详细说明。那里有太多差异信息

mysql - 将数据从一个表插入到另一个表 | mysql

MySql:MyISAM 与 Innodb!

mysql - 如何改进 INSERT INTO ... SELECT 锁定行为

MySQL InnoDB 比 MyISAM 慢得多