您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如何在MySQL中缩小/清除ibdata1文件

如何在MySQL中缩小/清除ibdata1文件

ibdata1并没有减少,这是MysqL一个特别令人讨厌的功能。该ibdata1文件实际上不能缩小,除非你删除所有数据库删除文件并重新加载转储。

但是您可以配置MysqL,以便将每个表(包括其索引)存储为单独的文件。这样ibdata1就不会增长那么大。根据Bill Karwin的评论认情况下从MysqL 5.6.6版本开始启用此功能

不久前我做了这个。但是,要将服务器设置为对每个表使用单独的文件,您需要进行更改my.cnf才能启用此功能

[MysqLd]
innodb_file_per_table=1

http://dev.mysql.com/doc/refman/5.5/en/innodb-multiple- tablespaces.html

当您要回收空间时,ibdata1实际上必须删除文件

当您在步骤5中启动MysqL时,ibdata1ib_log文件将被重新创建。

现在您可以出发了。创建新数据库进行分析时,这些表将位于单独的ibd*文件中,而不是中ibdata1。由于通常在不久之后ibd*删除数据库,因此文件将被删除

http://dev.mysql.com/doc/refman/5.1/zh-CN/drop- database.html

您可能已经看到了:http ://bugs.mysql.com/bug.PHP?id=1341

通过使用该命令ALTER TABLE <tablename> ENGINE=innodbOPTIMIZE TABLE <tablename>一个命令,可以将数据和索引页面从ibdata1提取到单独的文件。但是,除非执行上述步骤,否则ibdata1将不会收缩。

关于information_schema,这是不必要的,也没有可能删除。实际上,它只是一堆只读视图,而不是表。而且没有与之关联的文件,甚至没有数据库目录。在informations_schema使用内存数据库引擎和被丢弃,一旦停止再生/重启MysqLd的。参见https://dev.mysql.com/doc/refman/5.7/en/information- schema.html。

MySQL 2022/1/1 18:13:46 有744人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶