2011-10-13 87 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