暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
MySQL通过alter table 来实现重建表.pdf
109
6页
0次
2024-02-20
免费下载
通过 alter table 来实现重建表
1、应用背景
在日常工作开发中,在 MySQL 中,如果我们对大表频繁进 insert
delete 操作,那么时间一长,这个表中会出现很多"空洞",也就是
表碎片。
碎片产生的原因是 insert 随机值作为主键 id,会产生很多数据页分裂
操作; delete 掉一些排列有序的主键值,这些被 delete 的空间不会
直接释放,而是仅仅进行 delete 的标记,这些空间如果不能被利用,
那就会变成"空洞"。
2、重建表
关于重建表,这时候新建一张结构一样的临时表,把表内的数据导入到
临时表,直接删除旧表然后将临时表替换为旧表,从而释放这些空余
的空间,让数据变得"紧凑些",完成重建操作。
我们其实可以通过如下命令来重建表:
alter table tableName engine=innodb
MySQL5.5 版本之前,这个命令的执行流程 1 操作差不多,区别
只是在于这个临时表不需要你直接创建,MySQL 会自动完成转存数据、
交换表名、删除旧表的操作
这个重建表的过程, MySQL5.5 之前它的执行逻辑是下面这样的
1、假设原表是 A,新建一个表 table B,和表 A 的表结构
保持一致;
2、按照主键顺序,将表 A 的数据一行一行的读出来,
入到表 B 里面
3、交换表 A 和表 B 的名称。
of 6
免费下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

关注
最新上传
暂无内容,敬请期待...
下载排行榜
Top250 周榜 月榜