ITPub博客

首页 > 数据库 > MySQL > MySQL的特殊的表膨胀

MySQL的特殊的表膨胀

原创 MySQL 作者:xuexiaogang 时间:2023-08-15 14:05:08 0 删除 编辑

     一次数据库迁移过后,运维反馈数据库空间不足了。原来规划导入10G数据,现在占用空间比预期大量3倍。这个迁移过程我知道,中途还有insert into select的动作。但是处理的数据有点大,导致处理失败。

     其实这也就是表膨胀的主要因素。

     创建一个表,写入一些数据。看到这个表现在大小是114688字节。

   

  经过多次反复插入(主要证明数据多了文件大小线性增加)。看到这个表现在大小是131072字节。



    再次写入insert into select写入,但是执行回退后。数据未能写入,但是表现在大小是163840字节。结果是表变大了,这个结果可能和大多数人想象中的不一样。大多数人可能觉得回退后,数据没有写入数据文件。

  其实很多数据库即使处理大事务,但是提交会很快。因为这些过程的数据和日志也都一直在写,所以最后提交很快。

  那也就是这里可以证明,为什么案例实际导入10G,但是占用空间很大。因为中途执行几次都被Kill回滚了。


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/637517/viewspace-2970531/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: DTCC参会归来感悟
请登录后发表评论 登录
全部评论
OracleACE/PostgreSQLACE/阿里云MVP/腾讯云TVP/墨天轮 MVP/TiDBMVA/数盟会华东区长老/OpenTenBase社区委和技术委委员/架构师技术同盟名人堂成员上海地区理事会成员/if社区联合发起人/《DBA实战手记》作者/公众号:四海内皆兄弟

注册时间:2013-07-01

  • 博文量
    422
  • 访问量
    953269