首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用于优化分区MySQL-表的磁盘使用

用于优化分区MySQL-表的磁盘使用
EN

Stack Overflow用户
提问于 2015-08-18 09:06:09
回答 2查看 274关注 0票数 1

我有一个包含300万行的大型MyISAM表,其大小为31 GB,这是由于每行中有一个10 GB的blob。该表已经有30个分区。我想优化这个表,因为我要删除一些旧数据的行,并调整blobs的大小。我的问题是如何在优化磁盘时使用磁盘:

如果我对整个表进行优化,那么MySQL是否一次只对一个分区进行优化,而只需要一个小部分的额外空间呢?或者,我必须优化一个或几个分区,以便在优化时不要有那么多额外的磁盘空间。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-09-29 08:47:09

仅优化一个s大小为1GB的分区只需非常快的秒时间,我无法看到磁盘的大量使用。

票数 1
EN

Stack Overflow用户

发布于 2015-08-18 21:34:32

(我的答案假设是InnoDB。即使我过于悲观,“解决方案”对于MyISAM也应该很好。)

对于InnoDB,请记住innodb_file_per_table的问题。

OPTIMIZE将构建整个表的副本。

解决方案:如果您的空间很紧,您可以一次优化一个分区。

代码语言:javascript
运行
复制
ALTER TABLE REORGANIZE PARTITION ...
                ( INTO PARTITION ...  );

是的,您需要一次为一个分区构建...,并一次执行它们。

(不要做OPTIMIZE PARTITION,这将优化整个表。)

你想详细说明一下你的桌子是什么样子吗?我可能想说服您退出分区,或者将您转换为另一种分区方式。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32068084

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档