mysql碎片
2021-07-03 00:10 youxin 阅读(326) 评论(0) 编辑 收藏 举报背景信息
本文描述的表空间碎片,指的是MySQL InnoDB引擎的表空间碎片;
产生原因
表空间碎片产生的常见原因:
(1)记录被Delete,且原空间无法复用;
(2)记录被Update(通常出现在变长字段中),原空间无法复用;
(3)记录插入导致页分裂,页的填充率降低;
影响
如果表空间碎片较大,可能带来的负面影响:
(1)浪费磁盘空间;
(2)可能导致查询扫描的IO成本提升,效率降低;
如果表空间较小或者碎片率较小,用户无需关注,也不建议执行回收空间碎片操作。
回收表空间碎片的方法
回收碎片的常见方法是通过 optimize table 来重组文件,操作过程会导致该表上的写操作无法执行,实例负载增大,请用户谨慎操作,如果确定需要回收,建议放在业务低峰期进行。
Alter Table操作也可以达到回收空间碎片的效果,请用户谨慎操作,如果确定需要回收,建议放在业务低峰期进行。
https://www.cnblogs.com/YasinXiao/p/7736400.html
OPTIMIZE TABLE
reorganizes the physical storage of table data and associated index data, to reduce storage space and improve I/O efficiency when accessing the table.
好处除了减少表数据与表索引的物理空间,还能降低访问表时的IO,这个比较理解,整理之前,取数据需要跨越很多碎片空间,这时需要时间的,整理后,想要的数据都放在一起了,直接拿就拿到了,效率提高
https://www.likecs.com/default/index/show?id=96814
清除表碎片
(1)MyISAM表
optimize table 表名
(2)InnoDB表
alter table 表名 engine=InnoDB
https://zhuanlan.zhihu.com/p/73828770
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
2014-07-03 YIi 使用 beginContent() 和 endContent() 设定 Yii 的 layouts
2014-07-03 Yii modules中layout文件的调用
2014-07-03 Yii路径总结
2013-07-03 asp.net将object或string转为int
2013-07-03 ASP.NET CS文件中输出JavaScript脚本
2013-07-03 asp.net判断用户是否登录
2012-07-03 原码,补码,反码相互转化