
通过 alter table 来实现重建表
1、应用背景
在日常工作开发中,在 MySQL 中,如果我们对大表频繁进行 insert
和 delete 操作,那么时间一长,这个表中会出现很多"空洞",也就是
表碎片。
碎片产生的原因是 insert 随机值作为主键 id,会产生很多数据页分裂
操作;而 delete 掉一些排列有序的主键值,这些被 delete 的空间不会
直接释放,而是仅仅进行 delete 的标记,这些空间如果不能被利用,
那就会变成"空洞"。
2、重建表
关于重建表,这时候新建一张结构一样的临时表,把表内的数据导入到
临时表,直接删除旧表,然后将临时表替换为旧表,从而释放这些空余
的空间,让数据变得"紧凑些",完成重建操作。
评论