Reclaim disk space after drop database in mysql

前端 未结 1 1102
天涯浪人
天涯浪人 2021-02-01 04:34

I\'ve created some very large databases and have since dropped a few. I\'ve noticed my disk space has not recovered as much as I had expected. For instance, the last database

1条回答
  •  说谎
    说谎 (楼主)
    2021-02-01 05:13

    From http://dev.mysql.com/doc/refman/5.1/en/innodb-data-log-reconfiguration.html:

    Currently, you cannot remove a data file from the tablespace. To decrease the size of your tablespace, use this procedure:

    1. Use mysqldump to dump all your InnoDB tables.

    2. Stop the server.

    3. Remove all the existing tablespace files, including the ibdata and ib_log files. If you want to keep a backup copy of the information, then copy all the ib* files to another location before the removing the files in your MySQL installation.

    4. Remove any .frm files for InnoDB tables.

    5. Configure a new tablespace.

    6. Restart the server.

    7. Import the dump files.

    Innodb creates a filesystem (the "tablespace") within the data files themselves. It never "shrinks" the data files when data is removed, since the reorganization of the data within the file could be costly (there's no guarantee that the data removed was at the end, or even contiguous). By recreating the database as described above, it makes the file as large as necessary for all the data, but no larger.

    0 讨论(0)
提交回复
热议问题