楼主: 飞鸿无痕_cu

[FAQ] 大表回收表空间讨论

[复制链接]
论坛徽章:
1
2012新春纪念徽章
日期:2012-01-04 11:54:46
11#
 楼主| 发表于 2011-11-24 12:21 | 只看该作者
devilkin0312 发表于 2011-11-24 12:16
我了解到的是innodb会在删除数据自动清理表空间。
查询资料中。。

不会的,我删除了几亿条数据,占用的磁盘空间还是一样大!没有缩小。

使用道具 举报

回复
论坛徽章:
14
2011新春纪念徽章
日期:2011-04-02 17:01:062013年新春福章
日期:2013-02-25 14:51:24复活蛋
日期:2012-12-06 19:27:46ITPUB 11周年纪念徽章
日期:2012-10-09 18:16:00ITPUB 11周年纪念徽章
日期:2012-09-28 17:34:42紫蛋头
日期:2012-03-13 16:37:18灰彻蛋
日期:2012-02-06 14:20:122012新春纪念徽章
日期:2012-01-04 11:57:56灰彻蛋
日期:2011-12-26 14:20:13茶鸡蛋
日期:2011-12-20 15:00:13
12#
发表于 2011-11-24 13:06 | 只看该作者
飞鸿无痕_cu 发表于 2011-11-24 12:21
不会的,我删除了几亿条数据,占用的磁盘空间还是一样大!没有缩小。

innodb 共享表空间确实不能回收空间。这是个问题。。。

使用道具 举报

回复
论坛徽章:
1
2012新春纪念徽章
日期:2012-01-04 11:54:46
13#
 楼主| 发表于 2011-11-24 13:23 | 只看该作者
配置了innodb_file_per_table=1也不会自动清理表空间的!

使用道具 举报

回复
论坛徽章:
14
2011新春纪念徽章
日期:2011-04-02 17:01:062013年新春福章
日期:2013-02-25 14:51:24复活蛋
日期:2012-12-06 19:27:46ITPUB 11周年纪念徽章
日期:2012-10-09 18:16:00ITPUB 11周年纪念徽章
日期:2012-09-28 17:34:42紫蛋头
日期:2012-03-13 16:37:18灰彻蛋
日期:2012-02-06 14:20:122012新春纪念徽章
日期:2012-01-04 11:57:56灰彻蛋
日期:2011-12-26 14:20:13茶鸡蛋
日期:2011-12-20 15:00:13
14#
发表于 2011-11-24 13:34 | 只看该作者
独立表空间可以回收表空间,你可以试下:
1.alter table table engine=innodb

使用道具 举报

回复
论坛徽章:
1
2012新春纪念徽章
日期:2012-01-04 11:54:46
15#
 楼主| 发表于 2011-11-24 14:04 | 只看该作者
devilkin0312 发表于 2011-11-24 13:34
独立表空间可以回收表空间,你可以试下:
1.alter table table engine=innodb

谢谢回复,因为表太大,担心用这种方式锁表会比较长时间,目前对大数据量还没有什么经验!

使用道具 举报

回复
论坛徽章:
1
ITPUB 11周年纪念徽章
日期:2012-10-09 18:16:00
16#
发表于 2011-11-24 22:33 | 只看该作者
飞鸿无痕_cu 发表于 2011-11-24 13:23
配置了innodb_file_per_table=1也不会自动清理表空间的!

这样你已经创建好的innodb表,不会修改为独立表空间的。

使用道具 举报

回复
论坛徽章:
1
2012新春纪念徽章
日期:2012-01-04 11:54:46
17#
 楼主| 发表于 2011-11-25 08:39 | 只看该作者
RogerZhuo 发表于 2011-11-24 22:33
这样你已经创建好的innodb表,不会修改为独立表空间的。

恩,是的,这个参数只对后来建立的表生效,我在安装开始的时候就配置了这个参数。

使用道具 举报

回复
论坛徽章:
52
2015年新春福章
日期:2015-03-06 11:57:312012新春纪念徽章
日期:2012-02-13 15:12:252012新春纪念徽章
日期:2012-02-13 15:12:25生肖徽章2007版:龙
日期:2012-02-07 10:33:22生肖徽章2007版:龙
日期:2012-02-07 10:33:22生肖徽章2007版:龙
日期:2012-02-07 10:33:22生肖徽章2007版:龙
日期:2012-02-07 10:33:22生肖徽章2007版:龙
日期:2012-02-07 10:33:22生肖徽章2007版:龙
日期:2012-02-07 10:32:552012新春纪念徽章
日期:2012-02-07 09:59:35
18#
发表于 2011-11-25 11:38 | 只看该作者
没有其他更好的办法,你既然是分区表,数据删除,能否借助删除分区的方式解决?

若是可以的话,使用单表空间+删除分区的方式,就不存在空间收缩的问题....

使用道具 举报

回复
论坛徽章:
1
2012新春纪念徽章
日期:2012-01-04 11:54:46
19#
 楼主| 发表于 2011-11-25 12:29 | 只看该作者
本帖最后由 飞鸿无痕_cu 于 2011-11-25 12:29 编辑
jinguanding 发表于 2011-11-25 11:38
没有其他更好的办法,你既然是分区表,数据删除,能否借助删除分区的方式解决?

若是可以的话,使用单表 ...

数据删除不能删除分区,因为分区是根据key(车辆id)来分区的,删除分区会导致一年以内的数据也删除。
不知道金大哥有没有用过这种方式,ALTER TABLE tablename OPTIMIZE PARTITION (p0);
一个一个分区来优化,这样只影响单分区的数据,官网上说可以采用这种方式来释放表空间。
不知道这个效果怎么样?

使用道具 举报

回复
论坛徽章:
52
2015年新春福章
日期:2015-03-06 11:57:312012新春纪念徽章
日期:2012-02-13 15:12:252012新春纪念徽章
日期:2012-02-13 15:12:25生肖徽章2007版:龙
日期:2012-02-07 10:33:22生肖徽章2007版:龙
日期:2012-02-07 10:33:22生肖徽章2007版:龙
日期:2012-02-07 10:33:22生肖徽章2007版:龙
日期:2012-02-07 10:33:22生肖徽章2007版:龙
日期:2012-02-07 10:33:22生肖徽章2007版:龙
日期:2012-02-07 10:32:552012新春纪念徽章
日期:2012-02-07 09:59:35
20#
发表于 2011-11-25 14:33 | 只看该作者
飞鸿无痕_cu 发表于 2011-11-25 12:29
数据删除不能删除分区,因为分区是根据key(车辆id)来分区的,删除分区会导致一年以内的数据也删除。
不 ...

只在测试环境玩过,是可以的....所以分区的数据最好能根据时间来分区,这样便于删除 -- 建议自己再从测试下,太久以前的事情,而且只是简单测试过一次而已,避免版本差异及我不知道的...问题发生

或者做二层,先对做uid的分区,再做时间子分区(注释:第一个分区不能为hash哦,否则不允许子分区创建)

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表