
Mysql学习专栏之八(从删除操作分析Mysql中的表收缩)
发布日期:2021-05-14 06:36:38
浏览次数:11
分类:精选文章
本文共 396 字,大约阅读时间需要 1 分钟。
数据库文件大小没有变化的原因主要在于数据页分裂导致的空洞。以下是详细的分步解释和解决方案:
数据页分裂与空洞形成:
- InnoDB引擎使用B+树存储数据,删除记录后仅标记为删除,不释放空间。
- 插入数据时,如果数据分布不均衡,会导致索引分裂,形成空洞。
- 空洞的存在使得文件大小未减少。
重建表的方法:
- 使用临时表导入数据:新建表B,将表A的数据逐行导入,替换表A。
- 使用alter命令重建表:即刻重建表,需确保在操作期间无数据写入。
- 使用Online DDL重建表:允许在重建期间继续进行增删改查,减少性能影响。
- 使用gh-ost工具:通过读取binlog日志,创建虚拟表来重建数据,避免业务中断。
优点分析:
- gh-ost工具利于异步执行,不影响性能;支持中断和快速测试。
总结:
- 数据页分裂造成空洞,重建表可填补这些空洞,释放空间。
- 使用Online DDL或gh-ost是高效且安全的方法。
发表评论
最新留言
路过,博主的博客真漂亮。。
[***.116.15.85]2025年04月10日 02时18分40秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
《web安全入门》(四)前端开发基础Javascript
2019-03-07
python中列表 元组 字典 集合的区别
2019-03-07
python struct 官方文档
2019-03-07
Android DEX加固方案与原理
2019-03-07
Android Retrofit2.0 上传单张图片和多张图片
2019-03-07
iOS_Runtime3_动态添加方法
2019-03-07
Leetcode第557题---翻转字符串中的单词
2019-03-07
Problem G. The Stones Game【取石子博弈 & 思维】
2019-03-07
Unable to execute dex: Multiple dex files
2019-03-07
Java多线程
2019-03-07
Unity监听日记
2019-03-07
AndroidStudio跳到错误位置
2019-03-07
木马开发的基本理论基础(五)
2019-03-07
openssl服务器证书操作
2019-03-07
expect 模拟交互 ftp 上传文件到指定目录下
2019-03-07
linux系统下双屏显示
2019-03-07
PDF.js —— vue项目中使用pdf.js显示pdf文件(流)
2019-03-07
我用wxPython搭建GUI量化系统之最小架构的运行
2019-03-07
我用wxPython搭建GUI量化系统之Sizer布局管理与页面切换
2019-03-07