2011-10-13 85 views
0

我有一個django項目,使用MyISAM表。當我執行備份時,我聽說建議使用InnoDB表而不是MyISAM。這是什麼原因建議的,是否必須使用InnoDB進行備份?MySQL備份MyISAM與InnoDB

目前,我使用的備份如下:

mysqldump -v -u $USER --password=$PASSWORD $DB >$BACKUP_FOLDER/$BACKUP_FILENAME 

如何將它轉換爲InnoDB並做備份?

+0

沒有推薦InnoDB的來源包括任何解釋,爲什麼它應該是首選? –

回答

0

的建議是更多的數據安全性 - MyISAM表被稱爲是對故障較不耐受(即機器死機等)

要更改表類型,你必須把你的應用程序脫機並使用ALTER TABLE表名ENGINE = InnoDB的;

你需要大表至少兩倍的磁盤空間,並有可能需要幾天時間,如果你說行100的數以百萬計

注意可能存在的性能下降後您的應用程序,但仍然可以因爲它顯然不是爲使用交易而設計的。

+0

「因爲它顯然不是爲了使用交易而設計的」是什麼意思? – Andy

+0

該應用程序。插入10,000行會突然變慢,因爲每個行都會插入到事務中。使用事務支持來修改代碼可能很難 - 因爲您必須研究事務邊界的實際情況。 –

+0

謝謝,這是有道理的。不知道你是在談論應用程序還是存儲引擎。 – Andy