我創建了一些非常大的數據庫,之後又刪除了一些。我注意到我的磁盤空間沒有像我預期的那樣恢復。例如,我添加的最後一個數據庫實際上用完了所有的空閒空間並中止,因此我放棄了該模式。在此之前,我有12.4 GB的空閒空間,現在我只有7.52 GB的空閒空間。
這是怎麼回事?我如何獲得我的〜5 GB?在mysql中刪除數據庫之後回收磁盤空間
20
A
回答
22
從http://dev.mysql.com/doc/refman/5.1/en/innodb-data-log-reconfiguration.html:
目前,你不能刪除從表空間的數據文件。爲了減少您的表空間的大小,使用此過程:
使用mysqldump轉儲所有InnoDB表。
停止服務器。
刪除所有現有的表空間文件,包括ibdata和ib_log文件。如果您想保留信息的備份副本,則在刪除MySQL安裝中的文件之前,將所有ib *文件複製到另一個位置。
移除InnoDB表的任何.frm文件。
配置一個新的表空間。
重新啓動服務器。
導入轉儲文件。
Innodb的創建數據內的文件系統( 「表」)文件本身。當數據被移除時,它不會「縮小」數據文件,因爲文件內的數據重組可能代價高昂(不能保證數據被移除到最後,甚至是連續的)。通過如上所述重新創建數據庫,它使所有數據的文件儘可能大,但不會更大。
相關問題
- 1. MongoDB的數據刪除 - 回收磁盤空間
- 2. MongoDB磁盤空間回收
- 3. MySQL InnoDB在從表中刪除數據行後沒有釋放磁盤空間
- 4. 清除MySQL磁盤空間
- 5. Oracle在用戶級聯後回收磁盤空間
- 6. 在SQL 2014+ VLDB上PAGE數據壓縮後回收磁盤空間
- 7. 在磁盤H2和內存數據庫之間來回切換
- 8. 下載表後Redshift回收磁盤空間
- 9. 在git中添加備用項後如何回收磁盤空間?
- 10. 如何回收SQLDB服務實例中的磁盤空間?
- 11. 如何增加SQL 2005 Server中數據庫的磁盤空間?
- 12. 當磁盤空間不足時從表中刪除多行
- 13. 從歷史記錄中刪除文件(磁盤空間不足)
- 14. 刪除回收站物品之間的空間
- 15. 當永久刪除表時,回收SQL Server 2005數據庫中的空間
- 16. 估計MySql的磁盤空間
- 17. 刪除數據之間的空白行
- 18. 寫入磁盤的文件在一段時間後被刪除
- 19. 硬盤空間vs數據庫空間
- 20. 廣告磁盤空間vs實際磁盤空間
- 21. 消耗較少磁盤空間的數據庫
- 22. 減少sql數據庫的磁盤空間
- 23. inotify_log文件刪除和磁盤空間使用
- 24. SQL Server 2005:刪除列佔用的磁盤空間
- 25. plesk刪除統計信息和日誌 - 磁盤空間不足
- 26. 在fwrite中檢測磁盤刪除C
- 27. 如何刪除數據庫之間的MySQL記錄
- 28. Azure刪除孤立磁盤
- 29. 可用磁盤空間是否存儲在sql server(2000)master數據庫中?
- 30. OpenFeint磁盤空間佔用空間
InnoDB或MyISAM表? – bot403 2011-05-12 20:14:21
http://crazytoon.com/2007/04/03/mysql-ibdata-files-do-not-shrink-on-database-deletion-innodb/ – Brad 2011-05-12 20:16:00
它使用InnoDB – VenerableAgents 2011-05-12 20:58:47