什么是表空间碎片
表空间中,占据内存空间,但没有用于存储数据的碎片空间
如何查看 & 判断
show table status from db_name;
产生起因
- 数据被 delete,且原空间无奈复用
- 数据被 update,常见于变长的字段中,原空间无奈复用
- 数据插入,导致页决裂,页填充率升高
产生影响
- 节约磁盘空间
- 查问 IO 成本上升,效率低
- 如果表数据量不大,则无需关注,不倡议清理
如何清理
alter table table_name engine = innodb;
视具体表存储引擎决定
- 该命令会重建整个表,分明碎片空间
- 重建整顿聚簇索引上的数据
须要留神
尽管 MySql 5.6 反对了 Online DDL,然而也会有降级写锁的工夫,如果该表数据量过大或是业务高频读写,仍然会引起问题,倡议在低频业务时段解决,或者用其余代替计划