社区
Oracle 高级技术
帖子详情
为什么我的表delete数据之后再插入同样的数据,表空间占用会越来越大?
loujihou
2017-06-04 06:50:02
我的操作首先是
DELETE TABLE A WHERE A.UPDATE>=一个固定的日期
然后commit
之后INSERT INTO TABLE A 刚才删除的数据
前后表数据数量是一样的,但是莫名其妙的表空间却越占越大
没有lob字段。
...全文
580
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操作
会
对系统
表
产生少量回滚记录。
MySQL为什么不建议使用
delete
删除
数据
?
本文分析了为什么在MySQL中不建议直接使用
DELETE
删除大量
数据
。主要涉及InnoDB存储架构、空间分配与回收机制,以及
DELETE
对查询性能的影响。指出
DELETE
只
会
打删除标记而不释放空间,并可能导致页碎片问题。文章还提供了逻辑删除、分区归档、权限隔离和专用归档系统的优化建议。
mysql通过
delete
操作删除
表
数据
,为什么
表
空间
的
数据
文件大小不变
本文探讨了MySQL中InnoDB
表
空间
的管理,特别是如何在删除
表
后回收空间。介绍了innodb_file_per_table参数的作用,以及
delete
操作如何影响
表
空间
。删除
数据
时,InnoDB采用B+树结构,仅标记记录为删除,不立即释放空间。为回收空间,可以通过重建
表
来消除空洞,提高
数据
页利用率。建议在删除不再需要的
表
时,使用drop table以直接删除对应的.idb文件。
Oracle 高级技术
3,499
社区成员
18,709
社区内容
发帖
与我相关
我的任务
Oracle 高级技术
Oracle 高级技术相关讨论专区
复制链接
扫一扫
分享
社区描述
Oracle 高级技术相关讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章