我的ibdata文件非常大,至少在我看来是非常大的。这是不是太过分了?
-rw-rw---- 1 mysql mysql 15G Apr 18 10:11 ibdata1发布于 2012-04-18 15:24:53
当这可能是一个问题时,
如果在表上运行show table status,而Data_free字段占ibdata1文件大小的绝大部分,那么您可能会浪费大量的空间。大量插入/删除将使这个问题成为一个问题。如果是这种情况,并且临时插入和删除构成了大部分数据,那么每个表的文件都有一个很好的例子。
不过,这不是自动的“是”。世界上有很多关于InnoDB文件内部碎片的讨论,但是将它们作为每个表的文件系统只会将您的碎片移动到文件系统级别而不是数据库级别。
将您的InnoDB文件看作一个文件系统而不是一个文件。如果您有很多文件,您将需要一个大的文件系统。
在大多数情况下,文件系统在处理兆字节的数据和数不清的文件方面做得很好。有时,它们会遇到索引错误的问题(例如,在性能影响之前限制目录中的文件数量),但在大多数情况下,现代文件系统可能会扩展到to级范围。
InnoDB的功能也是一样的。你的数据文件可能很大.就像大型文件系统一样,这可能会导致备份数据的问题。但是,正如将文件系统分割成多个分区无助于解决这个问题一样,试图操作无害数据库也没有帮助。虽然您可以使用诺姆b_文件_每_表格,但我很少推荐它。
就像您的文件系统一样,更好的答案是了解内部的限制并在其中工作。理解索引并适当地应用它们。不要试图分裂InnoDB,它不是为了这个目的。
由于我正努力以建设性的方式传达这个概念,下面是一个比我能更好地读到的单词:兆字节不是大数据,千兆字节是。
我还记得一张非常古老的MySQL营销幻灯片,当时客户运行的数据仓库有几兆字节。很多年前。InnoDB或MyISAM,两者都能工作。这是标准的机架上的MySQL东西。
不要担心一个15‘t的数据库。
发布于 2012-04-18 15:24:24
ibdata文件不会收缩--如果您最近删除了一些表或删除了许多行--您的配置中的无害数据库将不会将空闲空间释放回文件系统。我建议你:
通过这种方式,您将能够在任何时候重新占用空间,如果您丢弃,则会立即删除与表/数据库相关的idb文件。
https://serverfault.com/questions/380730
复制相似问题