我在AWS中有一个MySQL 8 DB,在几个月前从MySQL 5.7升级到8之后,我们注意到空闲磁盘空间的消耗速度非常快,至少是以前的两倍。
一个特定的表显示了在查询data_length + index_length时大约500 or的INFORMATION_SCHEMA.TABLES,但是当查询INFORMATION_SCHEMA.FILES或INFORMATION_SCHEMA.INNODB_TABLESPACES (我们有innodb_per_file_table=1)时,它的.ibd文件被分配给磁盘上的1TB以上。从data_free与数据+索引长度的比较来看,碎片很少。
如何找出磁盘消耗率上升的原因?MySQL 8是否有使用更多磁盘的固有特性?我们的应用程序没有改变,但是它确实有相当大的JSON列--可能是MySQL 8中的某些东西以一种效率较低的方式处理磁盘上的JSON?
发布于 2019-12-30 16:49:09
这很可能是因为您正在使用的mysql版本中有一个bug。问题是,mysql在重新启动mysqld之前不会对临时文件释放其文件句柄。这是一个已确认的错误,您可以阅读其他人对它的体验,这里。
升级超过8.0.15应该解决了这个问题。
https://dba.stackexchange.com/questions/252597
复制相似问题