首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尽管MySQL的数据很少,但是IDB文件仍然很大

问尽管MySQL的数据很少,但是IDB文件仍然很大
EN

Database Administration用户
提问于 2019-12-10 23:35:30
回答 1查看 205关注 0票数 1

我们最近使用mysql 8迁移到了一个新的数据库服务器(之前的版本为5.7 )。我们现在有了一个表,它存储一个int、一个datetime和一个中间文本列,这些列增长得太大了。以至于服务器的全部硬盘空间都耗尽了。

问题是表只包含大约100行数据,而idb文件在优化表为7 Mb之后。经过一周的运行,该表的容量已超过700 to。

这张表确实收到了大量的deletes+inserts。多年来,我们在老服务器上都有相同的表,没有问题。

我试过了

代码语言:javascript
复制
innodb_purge_threads = 32
innodb_max_purge_lag = 2000000

但是这张桌子继续以每分钟20兆的速度增长,没有任何明显的原因。我是不是遗漏了任何特殊的mysql新特性?

或者现在我需要让我的应用程序每隔几分钟运行一次优化表。似乎数据库应该自行处理这个问题,而不是依赖于应用程序中的此类黑客。

提前感谢您的指点!

Windows2019上运行的MySQL服务器版本为8.0.18,内存为32 of。此服务器上没有运行其他任何内容,而且数据库服务器是从具有三分之一此规范的旧版本升级的。表结构相同,在旧服务器上运行多年,没有问题。

以下是表格结构:

代码语言:javascript
复制
The following is the Show Create Table
CREATE TABLE `automationjobstate` (
  `AutomationJobID` int(10) unsigned NOT NULL,
  `StateTimestamp` datetime NOT NULL,
  `StateData` mediumtext,
  PRIMARY KEY (`AutomationJobID`),
  CONSTRAINT `automationjobstate_ibfk_1` FOREIGN KEY (`AutomationJobID`) REFERENCES `automationjobs` (`ID`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci

如何附加显示变量的结果?它对许多人物都是如此。

EN

回答 1

Database Administration用户

发布于 2019-12-12 06:53:45

现在已经过去了大约30个小时,所讨论的表(即idb文件)占用的磁盘空间比预期的要少。使用该表的应用程序也离线了几个小时,因此该表再次缩小。一旦应用程序重新上线,它仍然表现出其日益增长的行为。

现在看来,mysql内部有一个清除系统,它无法完全跟上该表的使用--尽管在旧得多的硬件上使用了更老的5.7 MySQL,但没有这个问题。

我认为这种实现是对我最初问题的答案,我将不得不调整innoDB清除参数以找到最优设置,或者可能每隔一段时间从应用程序中触发优化表。

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

https://dba.stackexchange.com/questions/255359

复制
相关文章

相似问题

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