首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对于ibdata文件来说,有多大?

对于ibdata文件来说,有多大?
EN

Server Fault用户
提问于 2012-04-18 15:13:10
回答 2查看 24.4K关注 0票数 9

我的ibdata文件非常大,至少在我看来是非常大的。这是不是太过分了?

代码语言:javascript
复制
-rw-rw---- 1 mysql mysql  15G Apr 18 10:11 ibdata1
EN

回答 2

Server Fault用户

回答已采纳

发布于 2012-04-18 15:24:53

当这可能是一个问题时,

如果在表上运行show table status,而Data_free字段占ibdata1文件大小的绝大部分,那么您可能会浪费大量的空间。大量插入/删除将使这个问题成为一个问题。如果是这种情况,并且临时插入和删除构成了大部分数据,那么每个表的文件都有一个很好的例子。

不过,这不是自动的“是”。世界上有很多关于InnoDB文件内部碎片的讨论,但是将它们作为每个表的文件系统只会将您的碎片移动到文件系统级别而不是数据库级别。

为什么这通常不是一个问题,

将您的InnoDB文件看作一个文件系统而不是一个文件。如果您有很多文件,您将需要一个大的文件系统。

在大多数情况下,文件系统在处理兆字节的数据和数不清的文件方面做得很好。有时,它们会遇到索引错误的问题(例如,在性能影响之前限制目录中的文件数量),但在大多数情况下,现代文件系统可能会扩展到to级范围。

InnoDB的功能也是一样的。你的数据文件可能很大.就像大型文件系统一样,这可能会导致备份数据的问题。但是,正如将文件系统分割成多个分区无助于解决这个问题一样,试图操作无害数据库也没有帮助。虽然您可以使用诺姆b_文件_每_表格,但我很少推荐它。

就像您的文件系统一样,更好的答案是了解内部的限制并在其中工作。理解索引并适当地应用它们。不要试图分裂InnoDB,它不是为了这个目的。

由于我正努力以建设性的方式传达这个概念,下面是一个比我能更好地读到的单词:兆字节不是大数据,千兆字节是

我还记得一张非常古老的MySQL营销幻灯片,当时客户运行的数据仓库有几兆字节。很多年前。InnoDB或MyISAM,两者都能工作。这是标准的机架上的MySQL东西。

不要担心一个15‘t的数据库。

票数 13
EN

Server Fault用户

发布于 2012-04-18 15:24:24

ibdata文件不会收缩--如果您最近删除了一些表或删除了许多行--您的配置中的无害数据库将不会将空闲空间释放回文件系统。我建议你:

  • 备份所有数据(如使用mysqldump )
  • 添加到my.cnf innodb_file_per_table指令
  • 重新启动mysql
  • 使用innodb引擎删除所有数据库
  • 停止mysql
  • 删除ibdata文件
  • rm ib_logfile01
  • 启动mysql,检查syslog是否一切正常
  • 重新装载你的垃圾堆

通过这种方式,您将能够在任何时候重新占用空间,如果您丢弃,则会立即删除与表/数据库相关的idb文件。

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

https://serverfault.com/questions/380730

复制
相关文章

相似问题

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