请教:迁移数据库后,为什么同样的数据,不同的占用大小?

2021-09-29 03:08:42 +08:00
 littlehans8

基础信息:

  1. ubuntu 20;
  2. mysql8,用的是 source 命令导入

把数据库从服务器 A 迁移到服务器 B 时,发现有一张大表跟 A 服务器占用空间不一致,

请教下这是什么原因呢?

会影响数据的一致性吗?

如图:

  1. 这是服务器 A 表的占用的空间:
  2. 这是服务器 B 表的占用空间:
  3. 为了测试,我在服务器 B 新建了个数据库重新导入,发现占用最大的表又减少了 30MB:
2654 次点击
所在节点    MySQL
10 条回复
cloudyi666
2021-09-29 07:37:17 +08:00
可能事务管理?
mouzhiyang
2021-09-29 07:41:46 +08:00
有些删除的数据原表没有释放空间,
迁移后表是实际大小。
wanguorui123
2021-09-29 08:16:20 +08:00
因为删数据不释放已经分配的空间
hsymlg
2021-09-29 10:08:11 +08:00
正常使用的 mysql 都会有页分裂,你这个 source 相当于手动 OPTIMIZE 了吧。可以用 information_schema.TABLES 看看你这两个库的表碎片信息
skymei
2021-09-29 10:20:22 +08:00
原表有碎片呀,重建之后空间变小很正常的,对于经常写入更新的表,碎片率比较大,定期优化下,空间也能减少很多
PerFectTime
2021-09-29 10:26:22 +08:00
日志?
pkoukk
2021-09-29 10:42:17 +08:00
数据更新 /删除导致数据位置改变,数据之间存在间隙,这些间隙不会立刻被压缩掉。
chinafengzhao
2021-09-29 11:57:35 +08:00
你这个什么管理平台?
linora
2021-10-08 17:18:56 +08:00
你应该比对数据行数,而不是占用空间

必要时,使用 pt-table-checksum 工具检查
jerryli
2021-10-11 14:42:11 +08:00
迁移后,数据更紧凑了,碎片少了,所以变小了。但如果本来就很紧凑,迁移后会变大

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/805028

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX