集群是我目前正在使用的有7+ TB的数据。在将主要版本从5.6升级到5.7之后,存储容量从7+ TB大幅度减少到1+ TB。我在每天的自动快照中注意到了这一点。(注意: db集群在rest时启用了加密,因此没有增量快照)。
我确实比较了所有数据库的所有表的行计数,假设可能有任何数据丢失。但行数完全吻合。所以我对根本原因一无所知。
如果有人能告诉我这里发生了什么,我会非常感激的。
发布于 2021-11-04 08:33:42
首先:到目前为止,在变色龙中找不到任何东西。
例如,通常情况下,MySQL InnoDB在从表中删除数据行后不会释放磁盘空间。它保留了稍后重用它的空间。您可以通过调用优化表命令来释放这个空间。在升级的情况下,优化表可能是内部修补工作流程的一部分,以确保应用新的逻辑。
FYI:这里解释了这种优化是如何在innodb https://stackoverflow.com/questions/30635603/what-does-table-does-not-support-optimize-doing-recreate-analyze-instead-me中工作的。
出于您的目的,您可以在测试环境中的备份中检查这种情况。
检查表大小:
SELECT table_schema as `Database`,table_name AS `Table`,round(((data_length + index_length) / 1024 / 1024), 2) `Size in MB`
FROM information_schema.TABLES
ORDER BY (data_length + index_length) DESC
LIMIT 5;只有在启用innodb_file_per_table时才能进行优化。这样检查您的配置(在极光afaik中默认为“ON”):
show variables like "innodb_file_per_table";运行优化器:
OPTIMIZE table your_table_name;检查表的大小
https://dba.stackexchange.com/questions/302107
复制相似问题