首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ibdata1文件在mysql中的用途是什么?

ibdata1文件在mysql中的用途是什么?
EN

Server Fault用户
提问于 2012-05-07 08:04:16
回答 1查看 5.3K关注 0票数 0

我的应用程序将后端数据库作为Mysql(InnoDb引擎),目前我的客户机希望将ibdata文件的大小缩小到一定的大小。我找到了以下三种解决方案。

解决方案1: innodb_file_per_table

解决方案2: innodb_data_file_path=ibdata1:50M;ibdata2:50M:autoextend

解决方案3: innodb_data_file_path=ibdata1:10M:autoextend:max:50M

而且我真的不了解ibadata1文件,有人能在这方面帮助我吗?我想知道修复ibdata大小(解决方案3)是否安全,以及ibdata到底用于什么?

EN

回答 1

Server Fault用户

回答已采纳

发布于 2012-05-07 09:10:51

在处理如此复杂的DBMS时,您确实应该仔细研究文档。http://dev.mysql.com/doc/refman/5.1/en/innodb-configuration.html声明:

InnoDB存储引擎管理的两个重要的基于磁盘的资源是表空间数据文件和日志文件。如果没有指定InnoDB配置选项,MySQL将在MySQL数据目录中创建一个自动扩展的名为ibdata1的10 5MB数据文件和两个名为ib_logfile0和ib_logfile1的5MB日志文件。

基本上,ibdata1文件包含InnoDB表的表数据。如果出于性能原因使用不同的存储子系统存储第二个文件,或者如果ibdata1在其原始分区上空间不足,并且希望有一个具有不同存储文件的简单外接存储,则指定多个文件将是有意义的。修复文件大小显然会限制可以存储在InnoDB表中的总数据量。

在您的情况下,ibdata1文件可能是自动增长的,因此当更多的数据被放入InnoDB表中时,它会膨胀。在从InnoDB表中删除记录后,该文件将包含标记为“空闲”的页面,这些页面可用于未来的数据,但文件本身是不可收缩的。如果您删除了大量的数据并需要收缩ibdata1,那么唯一受支持的方法就是使用mysqldump备份表并重新初始化数据库--参见这个StackOverflow的答案获取详细信息。

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

https://serverfault.com/questions/386616

复制
相关文章

相似问题

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