什么是表空间碎片
表空间中,占据内存空间,但没有用于存储数据的碎片空间
如何查看 & 判断
show table status from db_name;
产生原因
- 数据被delete,且原空间无法复用
- 数据被update,常见于变长的字段中,原空间无法复用
- 数据插入,导致页分裂,页填充率降低
产生影响
- 浪费磁盘空间
- 查询IO成本上升,效率低
- 如果表数据量不大,则无需关注,不建议清理
如何清理
alter table table_name engine = innodb;
视具体表存储引擎决定
- 该命令会重建整个表,清楚碎片空间
- 重建整理聚簇索引上的数据
需要注意
虽然MySql 5.6支持了Online DDL,但是也会有升级写锁的时间,如果该表数据量过大或是业务高频读写,依然会引起问题,建议在低频业务时段处理,或者用其他替代方案
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。