gpt4 book ai didi

mysql - 为什么 MySQL 数据库中没有空闲空间?

转载 作者:搜寻专家 更新时间:2023-10-30 22:13:22 25 4
gpt4 key购买 nike

最近,我检查了我在 phpMyAdmin(使用 WAMP)中使用的 SQL 数据库,它们都报告没有可用空间。以前不是这样,我不确定是什么导致它发生变化。可用空间不足导致对数据库的调用非常非常慢。我重新安装了 WAMP,为 phpMyAdmin 创建了一个新用户,并将数据库重新导入到新用户中,但无济于事。

这是我用来检查空间的查询和结果:

SELECT table_schema "beek", SUM( data_length + index_length ) /1024 / 1024 "Data Base Size in MB", SUM( data_free ) /1024 /1024 "Free Space in MB"
FROM information_schema.TABLES
GROUP BY table_schema
LIMIT 0 , 30
beekData Base Size in MBFree Space in MB-------------------------------------------beekData Base Size in MB 4.11813927Free Space in MB 0.00000000-----------------------------------------information_schemaData Base Size in MB 0.00976563Free Space in MB 0.00000000---------------------------------------mysqlData Base Size in MB 0.76406479Free Space in MB 0.00000000-------------------------------------performance_schemaData Base Size in MB 0.00000000Free Space in MB 0.00000000--------------------------------------------

有谁知道为什么这些数据库中的所有额外空间都消失了?

最佳答案

InnoDB 表的“可用空间”报告为没有数据的范围大小。

当一个表空间文件在物理上增长时,它会增长成一大块页面,称为扩展。然后逐渐插入数据以填充范围。

您可以在刚刚分配新范围但在插入数据之前查询 information_schema。然后,当您插入数据时,它会使用 extent 中的一些空间并且不再空闲(即使它只是部分填充)。

表空间文件中间的Extents也可以在做大量DELETE时清空。但是随后的 INSERT 会重新使用该空闲空间。

无论哪种方式,零未占用区段都是正常的,这不是问题。如果文件需要物理增长,InnoDB 可以做到这一点。

更多详细信息,请参阅:

关于mysql - 为什么 MySQL 数据库中没有空闲空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19439198/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com