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