基础信息:
- ubuntu 20;
- mysql8,用的是 source 命令导入
把数据库从服务器 A 迁移到服务器 B 时,发现有一张大表跟 A 服务器占用空间不一致,
请教下这是什么原因呢?
会影响数据的一致性吗?
如图:
- 这是服务器 A 表的占用的空间:

- 这是服务器 B 表的占用空间:

- 为了测试,我在服务器 B 新建了个数据库重新导入,发现占用最大的表又减少了 30MB:

基础信息:
把数据库从服务器 A 迁移到服务器 B 时,发现有一张大表跟 A 服务器占用空间不一致,
请教下这是什么原因呢?
会影响数据的一致性吗?
如图:



1
cloudyi666 Sep 29, 2021 via iPhone
可能事务管理?
|
2
mouzhiyang Sep 29, 2021 via Android
有些删除的数据原表没有释放空间,
迁移后表是实际大小。 |
3
wanguorui123 Sep 29, 2021 via iPhone
因为删数据不释放已经分配的空间
|
4
hsymlg Sep 29, 2021
正常使用的 mysql 都会有页分裂,你这个 source 相当于手动 OPTIMIZE 了吧。可以用 information_schema.TABLES 看看你这两个库的表碎片信息
|
5
skymei Sep 29, 2021
原表有碎片呀,重建之后空间变小很正常的,对于经常写入更新的表,碎片率比较大,定期优化下,空间也能减少很多
|
6
PerFectTime Sep 29, 2021
日志?
|
7
pkoukk Sep 29, 2021
数据更新 /删除导致数据位置改变,数据之间存在间隙,这些间隙不会立刻被压缩掉。
|
8
chinafengzhao Sep 29, 2021 via iPhone
你这个什么管理平台?
|
9
linora Oct 8, 2021
你应该比对数据行数,而不是占用空间
必要时,使用 pt-table-checksum 工具检查 |
10
jerryli Oct 11, 2021
迁移后,数据更紧凑了,碎片少了,所以变小了。但如果本来就很紧凑,迁移后会变大
|