社区
Oracle 高级技术
帖子详情
为什么我的表delete数据之后再插入同样的数据,表空间占用会越来越大?
loujihou
2017-06-04 06:50:02
我的操作首先是
DELETE TABLE A WHERE A.UPDATE>=一个固定的日期
然后commit
之后INSERT INTO TABLE A 刚才删除的数据
前后表数据数量是一样的,但是莫名其妙的表空间却越占越大
没有lob字段。
...全文
576
2
打赏
收藏
为什么我的表delete数据之后再插入同样的数据,表空间占用会越来越大?
我的操作首先是 DELETE TABLE A WHERE A.UPDATE>=一个固定的日期 然后commit 之后INSERT INTO TABLE A 刚才删除的数据 前后表数据数量是一样的,但是莫名其妙的表空间却越占越大 没有lob字段。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
loujihou
2017-06-04
打赏
举报
回复
大佬,真是厉害,每次有不懂的地方在这里总能得到想要的答案。 move了一下,一下释放了N多空间,这下不会担心了!
卖水果的net
2017-06-04
打赏
举报
回复
楼主研究一下 pctfree 和 pctused 这两个参数,跟这个会有关系的; 这时,你可以 move 一下表,大小就应该和原来的一样了。
为什么
delete
表
数据
,磁盘空间却还是被
占用
本文探讨了MySQL中
delete
操作的原理,解释了为何
delete
后
表
文件大小不变,并介绍了使用OPTIMIZETABLE及ALTERTABLE进行
表
空间
优化的方法。
MySQL
Delete
表
数据
后,磁盘空间并未释放,为什么?
文章讨论了MySQL中InnoDB
表
频繁增删导致的
数据
空洞问题,指出
delete
操作不
会
真正删除
数据
,而是标记为删除,
占用
空间不释放。解决方法包括定期优化
表
(OPTIMIZETABLE)和使用OnlineDDL进行更高效的
数据
操作。,
达梦回滚
表
空间
的空间
占用
和释放
文章通过创建
表
、
插入
数据
、CTAS操作、
DELETE
、TRUNCATE和DROP等方式,测试了DML和DDL对回滚
表
空间
的影响。CTAS创建
表
并
插入
数据
比先创建
表
再
插入
更高效;TRUNCATE立即释放空间,而
DELETE
和DROP需等待UNDO_RETENTION参数指定的时间后才释放。DDL操作
会
对系统
表
产生少量回滚记录。
数据
库
delete
表
数据
后,磁盘空间为什么还是被一直
占用
?
文章讨论了在MySQL中使用
DELETE
删除
数据
后,
表
文件大小未减小的问题。这涉及到InnoDB存储引擎的B+树结构和
数据
页的复用机制。删除
数据
实际上只是将其标记为删除,而非真正释放空间。可以通过OPTIMIZETABLE或ALTERTABLE命令回收空间。此外,文章还提到了OnlineDDL在MySQL5.6后的引入,允许在DDL操作期间保持读写能力。
Oracle 高级技术
3,499
社区成员
18,709
社区内容
发帖
与我相关
我的任务
Oracle 高级技术
Oracle 高级技术相关讨论专区
复制链接
扫一扫
分享
社区描述
Oracle 高级技术相关讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章