首页 > 数据库 > mysql教程 > 如何清除和缩小MySQL中的ibdata1文件?

如何清除和缩小MySQL中的ibdata1文件?

Patricia Arquette
发布: 2024-12-04 15:13:11
原创
288 人浏览过

How Can I Purge and Shrink the ibdata1 File in MySQL?

清除并缩小 MySQL 中的 Ibdata1 文件

尽管删除了 MySQL 中的数据库,ibdata1 文件的大小仍会累积,从而导致性能问题。为了解决这个问题,MySQL 允许您配置单个表和索引以使用单独的文件,而不是将它们存储在 ibdata1 中。

配置单个表文件

添加以下设置添加到您的 my.cnf 文件:

[mysqld]
innodb_file_per_table=1
登录后复制

重新启动 MySQL 以使更改生效。这将确保新表使用自己的 ibd* 文件创建。

从 Ibdata1 回收空间

要从 ibdata1 回收空间,请按照以下步骤操作:

  1. 创建除 mysql 之外的所有数据库的转储Performance_schema。
  2. 删除除 mysql 和 Performance_schema 之外的所有数据库。
  3. 停止 MySQL。
  4. 删除 ibdata1 和 ib_log 文件。
  5. 启动 MySQL。
  6. 从以下位置恢复数据库dump.

重启后,MySQL 将创建新的 ibdata1 和 ib_log 文件。当您创建新数据库进行分析时,它们将使用单独的 ibd* 文件而不是 ibdata1。

优化表大小

使用 ALTER TABLE ENGINE=innodb 或 OPTIMIZE TABLE ;命令可以将数据和索引页从 ibdata1 移动到单独的文件。但是,如果不执行上述步骤,ibdata1 就不会收缩。

附加说明

  • information_schema 数据库无法删除,因为它包含只读视图, MySQL 重新启动后会重新生成。
  • 虽然 MySQL 企业版提供了用于收缩 ibdata1 的附加功能,但它们并没有在社区版中可用。

以上是如何清除和缩小MySQL中的ibdata1文件?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板