首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Unix和Mysql中列出的数据库大小之间的差异

Unix和Mysql中列出的数据库大小之间的差异
EN

Server Fault用户
提问于 2012-06-03 17:28:28
回答 1查看 78关注 0票数 4

当我看到我的db_1的大小时,它只列出了4k。但是,当我显示db_1的表状态时,我发现根据数据长度,总的大小大约是3.7GB。为什么会有这种差异?另外,为什么ibdata1这么大?

代码语言:javascript
复制
drwx------ 2 mysql mysql 4.0K Jun  3 08:52 db_1
-rw-r-xr-x 1 mysql mysql  22G Jun  3 08:51 ibdata1
drwx------ 2 mysql mysql 4.0K Apr 30 22:30 my_DB
drwxr-xr-x 2 mysql dba   8.0K May  1 12:44 mysql
-rw-r-xr-x 1 mysql root  4.4K Jun  1 14:33 
-rw-rw---- 1 mysql mysql    5 May 17 18:19 
-rw-r-xr-x 1 mysql mysql  51K Jun  3 08:41 
drwxr-xr-x 2 mysql dba   4.0K Apr 30 22:29 performance_schema







----------------+---------+
| 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 |
+------------------------------------------------+--------+---------+------------+----------+----------------+-------------+-----------------+--------------+-------------+----------------+---------------------+-------------+------------+-------------------+----------+----------------+---------+
| xxxxxxxxxxxxxxxxxxxxxx                         | InnoDB |      10 | Compact    |      117 |            140 |       16384 |               0 |            0 | 17825792000 |           NULL | 2012-05-01 13:24:34 | NULL        | NULL       | latin1_swedish_ci |     NULL |                |         |
| xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx| InnoDB |      10 | Compact    |   466203 |            248 |   116015104 |               0 |            0 | 17825792000 |           NULL | 2012-05-01 13:31:28 | NULL        | NULL       | latin1_swedish_ci |     NULL |                |         |
| xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx      | InnoDB |      10 | Compact    |  1028265 |            111 |   114147328 |               0 |            0 | 17825792000 |           NULL | 2012-05-01 13:32:36 | NULL        | NULL       | latin1_swedish_ci |     NULL |                |         |
| xxxxxxxxxxxxxxxxxxxxxxxx                       | InnoDB |      10 | Compact    |  1353685 |             98 |   133922816 |               0 |            0 | 17825792000 |           NULL | 2012-05-01 13:32:49 | NULL        | NULL       | latin1_swedish_ci |     NULL |                |         |
| xxxxxxxxxxxxxxxxxx                             | InnoDB |      10 | Compact    |    50546 |             52 |     2637824 |               0 |            0 | 17825792000 |           NULL | 2012-05-01 13:04:18 | NULL        | NULL       | latin1_swedish_ci |     NULL |                |         |
| xxxxxxxxxxxxxxxxxxxxxx                         | InnoDB |      10 | Compact    |    44281 |             83 |     3686400 |               0 |            0 | 17825792000 |           NULL | 2012-05-01 13:19:25 | NULL        | NULL       | latin1_swedish_ci |     NULL |                |         |
| xxxxxxxxxxxxxxxxxxxxxxxxx                      | InnoDB |      10 | Compact    |  5841698 |            124 |   729808896 |               0 |    163397632 | 17825792000 |           NULL | 2012-05-01 13:17:29 | NULL        | NULL       | latin1_swedish_ci |     NULL |                |         |
| xxxxxxxxxxxxxxxxxxxxxxxx                       | InnoDB |      10 | Compact    | 52327792 |             60 |  3171942400 |               0 |            0 | 17825792000 |           NULL | 2012-05-03 17:09:41 | NULL        | NULL       | latin1_swedish_ci |     NULL |                |         |
+------------------------------------------------+--------+---------+------------+----------+----------------+-------------+-----------------+--------------+-------------+----------------+---------------------+-------------+------------+-------------------+----------+----------------+---------+
EN

回答 1

Server Fault用户

发布于 2012-06-03 17:59:46

这是一个很常见的问题,已经问了很多次了。

这是因为您将所有表存储在一个InnoDB文件(ibdata1)中。删除数据后,此文件不会收缩。因此,您曾经在所有InnoDB表中存储了22 of的数据,尽管您现在可能没有那么多数据。

要解决这个问题,您需要删除所有InnoDB表,关闭MySQL,删除该文件,启动MySQL备份,然后重新导入这些表。

此外,还可以使用MySQL设置innodb_file_per_table将每个InnoDB表拆分为自己的文件。这些文件仍然不会自动缩小,但是您可以使用alter table ... type=innodb进行清理。

票数 6
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/395154

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档