基础信息:
把数据库从服务器 A 迁移到服务器 B 时,发现有一张大表跟 A 服务器占用空间不一致,
请教下这是什么原因呢?
会影响数据的一致性吗?
如图:
1
cloudyi666 2021-09-29 07:37:17 +08:00 via iPhone
可能事务管理?
|
2
mouzhiyang 2021-09-29 07:41:46 +08:00 via Android
有些删除的数据原表没有释放空间,
迁移后表是实际大小。 |
3
wanguorui123 2021-09-29 08:16:20 +08:00 via iPhone
因为删数据不释放已经分配的空间
|
4
hsymlg 2021-09-29 10:08:11 +08:00
正常使用的 mysql 都会有页分裂,你这个 source 相当于手动 OPTIMIZE 了吧。可以用 information_schema.TABLES 看看你这两个库的表碎片信息
|
5
skymei 2021-09-29 10:20:22 +08:00
原表有碎片呀,重建之后空间变小很正常的,对于经常写入更新的表,碎片率比较大,定期优化下,空间也能减少很多
|
6
PerFectTime 2021-09-29 10:26:22 +08:00
日志?
|
7
pkoukk 2021-09-29 10:42:17 +08:00
数据更新 /删除导致数据位置改变,数据之间存在间隙,这些间隙不会立刻被压缩掉。
|
8
chinafengzhao 2021-09-29 11:57:35 +08:00 via iPhone
你这个什么管理平台?
|
9
linora 2021-10-08 17:18:56 +08:00
你应该比对数据行数,而不是占用空间
必要时,使用 pt-table-checksum 工具检查 |
10
jerryli 2021-10-11 14:42:11 +08:00
迁移后,数据更紧凑了,碎片少了,所以变小了。但如果本来就很紧凑,迁移后会变大
|