我有一個表path
。它佔據了13G ibdata1的99%。它以前是INNODB
表,但我將它轉換爲MYISAM
。可以通過將表格轉換爲MyISam來減少ibdata1文件大小嗎?
如果我在新的path
表上運行優化表,它會釋放我的ibdata1文件嗎?或者,這是否從未縮小規模,我需要刪除它並重新導入新的數據庫?
我有一個表path
。它佔據了13G ibdata1的99%。它以前是INNODB
表,但我將它轉換爲MYISAM
。可以通過將表格轉換爲MyISam來減少ibdata1文件大小嗎?
如果我在新的path
表上運行優化表,它會釋放我的ibdata1文件嗎?或者,這是否從未縮小規模,我需要刪除它並重新導入新的數據庫?
號刪除了InnoDB表將騰出空間內 InnoDB表(ibdata1
文件),但它會不會收縮的ibdata1
文件。
例外情況是:如果在服務器innodb_file_per_table
變量設置創建表,則該表就可以在其自己的單獨的InnoDB表(數據文件),並且當表被刪除,所使用的表的空間將發佈。
答案是否定的(上面更好的解釋)。我不得不這樣做是這樣的:
1) Dump the database
2) Stop mysql
3) Delete the `ibdata1` file and two log files.
4) Restart mysql
5) Import the sql dump.
這將讓你回默認ibdata1
文件大小。然後你可以1)如果表上沒有完整性約束(這是我所做的),則將表的引擎更改爲myisam;或者2)如果保留innodb表,則設置innodb_file_per_table=ON
。